This commit is contained in:
2025-08-15 20:31:40 +02:00
parent 6865e6aaaa
commit c87da2802a
14 changed files with 235 additions and 293 deletions

View File

@@ -70,18 +70,17 @@ void XQItemType::setData(const QVariant& value, int role )
}
//! tested, ob ein attribute (z.B. unitType) hier vorhanden ist
int XQItemType::hasAttribute( const QString& attrKey )
int XQItemType::roleForAttributeKey( const QString& attrKey )
{
int role = XQItem::fetchItemDataRole(attrKey);
// gibbed überhaupt eine rolle für unser attribut?
if( role == XQItem::NoRole)
return XQItem::NoRole;
// wenn ja, ist die role hier besetzt?
QVariant value = data(role);
if( !value.isValid() || value.isNull() )
return XQItem::NoRole;
if( role != XQItem::NoRole)
{
// wenn ja, ist die role hier besetzt?
QVariant value = data(role);
if( !value.isValid() || value.isNull() )
return XQItem::NoRole;
}
return role;
}
@@ -91,6 +90,7 @@ int XQItemType::hasAttribute( const QString& attrKey )
XQItemType* XQItemType::replaceAttribute( const QVariant& newValue, int role )
{
qDebug() << " --- Before: " << makeItemTypeKey() << " role:" << XQItem::fetchItemDataRoleName(role) << " value:" << newValue.toString();
// hat sich überhaupt was geändert?
QVariant oldValue = data(role);
@@ -115,8 +115,10 @@ XQItemType* XQItemType::replaceAttribute( const QVariant& newValue, int role )
// speichern
s_ItemTypeMap.insert( newKey, myClone );
// und ins item übernehmen
//item.setItemType( myClone );
qDebug() << " --- After: " << myClone->makeItemTypeKey();
/// Obacht! Der alte, geänderte itemType bleibt erhalten
/// und verrottet ggf. ohne Daseinszweck
@@ -131,6 +133,7 @@ XQItemType* XQItemType::replaceAttribute( const QVariant& newValue, int role )
QVariant XQItemType::formatText( const XQItem& item ) const
{
XQItem::UnitType uType = unitType();
//qDebug() << " --- formatText: " << XQItem::fetchUnitTypeToString( uType);
const QString& cont = item.content();
if( uType != XQItem::NoUnitType )
return formatToSI( cont, uType );
@@ -244,10 +247,11 @@ QString XQItemType::makeItemTypeKey()
key = key.arg( renderStyleToString() );
key = key.arg( editorTypeToString() );
key = key.arg( unitTypeToString() );
key = key.arg( contentFormat() );
key = key.arg( contentFormat() );
key = key.arg( data(XQItem::FlagsRole).toString() );
key = key.arg( icon().name() );
// icons haben leider keine namen, es sei denn, sie kommen aus einen theme
//key = key.arg( icon().name() );
key = key.arg( icon().cacheKey() );
key = key.arg( fixedChoicesToString() );
return key;