cleanups.

This commit is contained in:
2025-08-09 07:45:32 +02:00
parent 5919d9d90d
commit c89cdfef71
5 changed files with 55 additions and 27 deletions

View File

@@ -305,8 +305,6 @@ QString XQItem::editorTypeToString() const
void XQItem::setEditorType(EditorType editorType) void XQItem::setEditorType(EditorType editorType)
{ {
setData( QVariant::fromValue(editorType), XQItem::EditorTypeRole); setData( QVariant::fromValue(editorType), XQItem::EditorTypeRole);
// Der EditorType wohnt im ItemType
//itemType().replaceAttribute( this, EditorTypeRole, editorType );
} }
@@ -453,7 +451,6 @@ QVariant XQItem::data(int role ) const
case IconRole: // aka Qt::DecorationRole, case IconRole: // aka Qt::DecorationRole,
case RenderStyleRole: case RenderStyleRole:
case EditorTypeRole: case EditorTypeRole:
case UnitTypeRole:
case ContentFormatRole: case ContentFormatRole:
case FixedChoicesRole: case FixedChoicesRole:
{ {
@@ -485,7 +482,7 @@ QVariant XQItem::data(int role ) const
case Qt::ToolTipRole: case Qt::ToolTipRole:
{ {
return content() + ":" + itemType().text() + ":" + renderStyleToString(); return content() + ":" + itemType().text() + ":" + renderStyleToString() + ":" + unitTypeToString();
} }
// //
@@ -507,11 +504,12 @@ QVariant XQItem::data(int role ) const
return firstItem.data( XQItem::ContentNodeRole ); return firstItem.data( XQItem::ContentNodeRole );
} }
case UnitTypeRole:
case Qt::StatusTipRole: case Qt::StatusTipRole:
case Qt::WhatsThisRole: case Qt::WhatsThisRole:
case Qt::SizeHintRole: case Qt::SizeHintRole:
case Qt::FontRole: case Qt::FontRole:
case Qt::TextAlignmentRole: case Qt::TextAlignmentRole:
case Qt::BackgroundRole: case Qt::BackgroundRole:
@@ -556,7 +554,6 @@ void XQItem::setData(const QVariant& value, int role )
case RenderStyleRole : case RenderStyleRole :
case EditorTypeRole : case EditorTypeRole :
case UnitTypeRole:
case ContentFormatRole: case ContentFormatRole:
case FlagsRole: // Stimmt das? case FlagsRole: // Stimmt das?
case IconRole: case IconRole:
@@ -574,7 +571,7 @@ void XQItem::setData(const QVariant& value, int role )
case ContentRole: case ContentRole:
{ {
// what will happen? value is a string ptr ?! // what will happen? value is a string ptr ?!
qDebug() << " --- setting content: " << value.toString(); //qDebug() << " --- setting content: " << value.toString();
// string ptr setzen kann die basis. // string ptr setzen kann die basis.
break; break;
return; return;
@@ -596,6 +593,8 @@ void XQItem::setData(const QVariant& value, int role )
} }
// alles andere wie gehabt // alles andere wie gehabt
case UnitTypeRole:
case ContentNodeRole: case ContentNodeRole:
case SheetNodeRole: case SheetNodeRole:
@@ -610,12 +609,17 @@ void XQItem::setData(const QVariant& value, int role )
} }
//! gibt ein statisches invalid-item zurück, anstelle von nullptr
XQItem& XQItem::fallBackDummyItem() XQItem& XQItem::fallBackDummyItem()
{ {
static XQItem s_fallBackDummyItem; static XQItem s_fallBackDummyItem;
return s_fallBackDummyItem; return s_fallBackDummyItem;
} }
//! gibt das item für den gegebenen index aus.
XQItem& XQItem::xqItemFromIndex(const QModelIndex& index) XQItem& XQItem::xqItemFromIndex(const QModelIndex& index)
{ {
if (index.isValid()) if (index.isValid())
@@ -624,10 +628,12 @@ XQItem& XQItem::xqItemFromIndex(const QModelIndex& index)
if (mdl) if (mdl)
return mdl->xqItemFromIndex(index); return mdl->xqItemFromIndex(index);
} }
return fallBackDummyItem(); return fallBackDummyItem();
} }
//! gibt den enum-type für den gegebenen datarole-key aus.
int XQItem::fetchItemDataRole( const QString& dataRoleKey ) int XQItem::fetchItemDataRole( const QString& dataRoleKey )
{ {
if(!dataRoleKey.isEmpty() && s_ItemDataRoleMap.contains(dataRoleKey) ) if(!dataRoleKey.isEmpty() && s_ItemDataRoleMap.contains(dataRoleKey) )
@@ -637,12 +643,16 @@ int XQItem::fetchItemDataRole( const QString& dataRoleKey )
} }
//! gibt die bezeichung für die gegebene datarole aus.
QString XQItem::fetchItemDataRoleName( int dataRole ) QString XQItem::fetchItemDataRoleName( int dataRole )
{ {
return s_ItemDataRoleMap.key(dataRole); return s_ItemDataRoleMap.key(dataRole);
} }
//! gibt das flag für den gegebenen itemflag-key aus.
Qt::ItemFlag XQItem::fetchItemFlag( const QString& flagKey ) Qt::ItemFlag XQItem::fetchItemFlag( const QString& flagKey )
{ {
if(!flagKey.isEmpty() && s_ItemFlagMap.contains(flagKey) ) if(!flagKey.isEmpty() && s_ItemFlagMap.contains(flagKey) )
@@ -650,6 +660,7 @@ Qt::ItemFlag XQItem::fetchItemFlag( const QString& flagKey )
return Qt::NoItemFlags; return Qt::NoItemFlags;
} }
//! gibt die bezeichung für das gegebene itemFlag aus.
QString XQItem::fetchItemFlagName( int flag ) QString XQItem::fetchItemFlagName( int flag )
{ {
@@ -657,6 +668,8 @@ QString XQItem::fetchItemFlagName( int flag )
} }
//! gibt den enum-type für den gegebenen renderStyle-key aus.
XQItem::RenderStyle XQItem::fetchRenderStyle(const QString& styleKey ) XQItem::RenderStyle XQItem::fetchRenderStyle(const QString& styleKey )
{ {
if(!styleKey.isEmpty() && s_RenderStyleMap.contains(styleKey) ) if(!styleKey.isEmpty() && s_RenderStyleMap.contains(styleKey) )
@@ -665,12 +678,16 @@ XQItem::RenderStyle XQItem::fetchRenderStyle(const QString& styleKey )
} }
//! gibt die bezeichung für den gegebenen renderStyle aus.
QString XQItem::fetchRenderStyleToString(XQItem::RenderStyle renderStyle ) QString XQItem::fetchRenderStyleToString(XQItem::RenderStyle renderStyle )
{ {
return s_RenderStyleMap.key(renderStyle); return s_RenderStyleMap.key(renderStyle);
} }
//! gibt den renderstyle enum-type für den gegebenen editorType-key aus.
XQItem::EditorType XQItem::fetchEditorType( const QString& editorTypeKey ) XQItem::EditorType XQItem::fetchEditorType( const QString& editorTypeKey )
{ {
if(!editorTypeKey.isEmpty() && s_EditorTypeMap.contains(editorTypeKey) ) if(!editorTypeKey.isEmpty() && s_EditorTypeMap.contains(editorTypeKey) )
@@ -679,17 +696,22 @@ XQItem::EditorType XQItem::fetchEditorType( const QString& editorTypeKey )
} }
//! gibt die bezeichung für den gegebenen editorType aus.
QString XQItem::fetchEditorTypeToString( EditorType editorType ) QString XQItem::fetchEditorTypeToString( EditorType editorType )
{ {
return s_EditorTypeMap.key(editorType); return s_EditorTypeMap.key(editorType);
} }
//! gibt den unitType für den gegebenen unitType-key aus.
XQItem::UnitType XQItem::fetchUnitType(const QString& unitTypeKey) XQItem::UnitType XQItem::fetchUnitType(const QString& unitTypeKey)
{ {
return s_UnitTypeMap.key(unitTypeKey); return s_UnitTypeMap.key(unitTypeKey);
} }
//! gibt die bezeichung für den gegebenen unitType aus.
QString XQItem::fetchUnitTypeToString( UnitType unitType) QString XQItem::fetchUnitTypeToString( UnitType unitType)
{ {

View File

@@ -28,6 +28,7 @@ void XQItemFactory::initItemFactory( const QString& modelSheetFileName )
// über alle attribute // über alle attribute
for( const auto& [key,value] : sheetNode->attributes() ) for( const auto& [key,value] : sheetNode->attributes() )
{ {
qDebug() << " --- conf: " << key << " : " << value;
setItemDataFromString( *itemType, key, value ); setItemDataFromString( *itemType, key, value );
} }
}; };
@@ -168,6 +169,7 @@ QVariant XQItemFactory::makeVariant( int dataRole, const QString& source ) const
case XQItem::UnitTypeRole: case XQItem::UnitTypeRole:
{ {
qDebug() << " --- make unit type: " << source;
XQItem::UnitType unitType = XQItem::fetchUnitType( source ); XQItem::UnitType unitType = XQItem::fetchUnitType( source );
value = QVariant::fromValue(unitType); value = QVariant::fromValue(unitType);
break; break;

View File

@@ -63,8 +63,9 @@ QVariant XQItemType::data( int role ) const
//! ruft QStandardItem::setData auf //! ruft QStandardItem::setData auf
void XQItemType::setData(const QVariant &value, int role ) void XQItemType::setData(const QVariant& value, int role )
{ {
qDebug() << " --- itemType set Data:" << role << " : " << value.toString();
return QStandardItem::setData(value,role); return QStandardItem::setData(value,role);
} }
@@ -104,7 +105,11 @@ void XQItemType::replaceAttribute( XQItem* item, const QVariant& newValue, int r
QVariant XQItemType::formatText( const XQItem& item ) const QVariant XQItemType::formatText( const XQItem& item ) const
{ {
return "type says:"+ item.content(); XQItem::UnitType uType = unitType();
const QString& cont = item.content();
if( uType != XQItem::NoUnitType )
return formatToSI( cont, uType );
return cont;
} }
//! firz //! firz

View File

@@ -42,7 +42,6 @@ public:
virtual QVariant formatText( const XQItem& item ) const; virtual QVariant formatText( const XQItem& item ) const;
// FIX! Das gehört hier nicht her!
QString formatToSI(const QString& rawText, XQItem::UnitType unitType ) const; QString formatToSI(const QString& rawText, XQItem::UnitType unitType ) const;
QString unFormatFromSI(const QString& valueText ) const; QString unFormatFromSI(const QString& valueText ) const;

View File

@@ -31,7 +31,7 @@
</DocumentTreeModel> </DocumentTreeModel>
<!-- <!--
DocumentDetailsModel: moo DocumentDetailsModel:
--> -->
<DocumentDetailsModel> <DocumentDetailsModel>
@@ -40,32 +40,32 @@
<PanelID HeaderCaption="Panel" HeaderItemType="HeaderType" ItemType="PlainType" Icon="icn74Dummy"/> <PanelID HeaderCaption="Panel" HeaderItemType="HeaderType" ItemType="PlainType" Icon="icn74Dummy"/>
<PanelName HeaderCaption="Name" HeaderItemType="HeaderType" ItemType="PlainType"/> <PanelName HeaderCaption="Name" HeaderItemType="HeaderType" ItemType="PlainType"/>
<Manufacturer HeaderCaption="Manufacturer" HeaderItemType="HeaderType" ItemType="ValueType"/> <Manufacturer HeaderCaption="Manufacturer" HeaderItemType="HeaderType" ItemType="ValueType"/>
<WattPeak HeaderCaption="Watt Peak" HeaderItemType="HeaderType" ItemType="ValueType" Unit="Wp"/> <WattPeak HeaderCaption="Watt Peak" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="Wp"/>
<Width HeaderCaption="Width" HeaderItemType="HeaderType" ItemType="ValueType" Unit="m"/> <Width HeaderCaption="Width" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="m"/>
<Height HeaderCaption="Height" HeaderItemType="HeaderType" ItemType="ValueType" Unit="m"/> <Height HeaderCaption="Height" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="m"/>
<Weight HeaderCaption="Weight" HeaderItemType="HeaderType" ItemType="ValueType" Unit="kg"/> <Weight HeaderCaption="Weight" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="kg"/>
<MaxVolt HeaderCaption="max. Volt" HeaderItemType="HeaderType" ItemType="ValueType" Unit="V"/> <MaxVolt HeaderCaption="max. Volt" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="V"/>
<MaxAmpere HeaderCaption="max. Ampere" HeaderItemType="HeaderType" ItemType="ValueType" Unit="A"/> <MaxAmpere HeaderCaption="max. Ampere" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="A"/>
</Panel> </Panel>
<Inverter FriendlyName="@InverterName"> <Inverter FriendlyName="@InverterName">
<InverterID HeaderCaption="Inverter" HeaderItemType="HeaderType" ItemType="ValueType"/> <InverterID HeaderCaption="Inverter" HeaderItemType="HeaderType" ItemType="ValueType"/>
<InverterName HeaderCaption="Name" HeaderItemType="HeaderType" ItemType="ValueType"/> <InverterName HeaderCaption="Name" HeaderItemType="HeaderType" ItemType="ValueType"/>
<Manufacturer HeaderCaption="Manufacturer" HeaderItemType="HeaderType" ItemType="ValueType"/> <Manufacturer HeaderCaption="Manufacturer" HeaderItemType="HeaderType" ItemType="ValueType"/>
<MaxPowerInput HeaderCaption="max. Input" HeaderItemType="HeaderType" ItemType="ChoiceType" ChoiceDataSource="MaxPowerInputChoice" Unit="W"/> <MaxPowerInput HeaderCaption="max. Input" HeaderItemType="HeaderType" ItemType="ChoiceType" ChoiceDataSource="MaxPowerInputChoice" UnitType="W"/>
<MaxPowerOutput HeaderCaption="max Output" HeaderItemType="HeaderType" ItemType="ValueType" Unit="W"/> <MaxPowerOutput HeaderCaption="max Output" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="W"/>
<NumStrings HeaderCaption="Strings" HeaderItemType="HeaderType" ItemType="ValueType"/> <NumStrings HeaderCaption="Strings" HeaderItemType="HeaderType" ItemType="ValueType"/>
<Weight HeaderCaption="Weight" HeaderItemType="HeaderType" ItemType="ValueType" Unit="kg"/> <Weight HeaderCaption="Weight" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="kg"/>
</Inverter> </Inverter>
<Battery FriendlyName="@BatteryName"> <Battery FriendlyName="@BatteryName">
<BatteryID HeaderCaption="Battery" HeaderItemType="HeaderType" ItemType="ValueType"/> <BatteryID HeaderCaption="Battery" HeaderItemType="HeaderType" ItemType="ValueType"/>
<BatteryName HeaderCaption="Name" HeaderItemType="HeaderType" ItemType="ValueType"/> <BatteryName HeaderCaption="Name" HeaderItemType="HeaderType" ItemType="ValueType"/>
<Manufacturer HeaderCaption="Manufacturer" HeaderItemType="HeaderType" ItemType="ValueType"/> <Manufacturer HeaderCaption="Manufacturer" HeaderItemType="HeaderType" ItemType="ValueType"/>
<Capacity HeaderCaption="Capacity" HeaderItemType="HeaderType" ItemType="ValueType" Unit="Wh"/> <Capacity HeaderCaption="Capacity" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="Wh"/>
<Yield HeaderCaption="Yield" HeaderItemType="HeaderType" ItemType="PercentageType" Unit="%"/> <Yield HeaderCaption="Yield" HeaderItemType="HeaderType" ItemType="PercentageType" UnitType="%"/>
<MaxCurrent HeaderCaption="max. Current" HeaderItemType="HeaderType" ItemType="ValueType" Unit="A"/> <MaxCurrent HeaderCaption="max. Current" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="A"/>
<MaxVolt HeaderCaption="max. Volt" HeaderItemType="HeaderType" ItemType="ValueType" Unit="V"/> <MaxVolt HeaderCaption="max. Volt" HeaderItemType="HeaderType" ItemType="ValueType" UnitType="V"/>
</Battery> </Battery>
</DocumentDetailsModel> </DocumentDetailsModel>