From d8902a43c03179704a5fdbba7fa8300bcb66becf Mon Sep 17 00:00:00 2001 From: "PANIK\\chris" Date: Sun, 10 Aug 2025 13:29:56 +0200 Subject: [PATCH 1/7] created dummy model with new structure. --- src/items/xqitemfactory.cpp | 12 ++++++------ xml/modelsheets.xml | 10 ++++++++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/items/xqitemfactory.cpp b/src/items/xqitemfactory.cpp index bf75e5e..20c73ac 100644 --- a/src/items/xqitemfactory.cpp +++ b/src/items/xqitemfactory.cpp @@ -137,14 +137,14 @@ XQItem* XQItemFactory::makeHeaderItem( const XQNodePtr& sheetEntry ) XQItem* XQItemFactory::makeContentItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry ) { - // den itemtype des neuen items rausfinden - QString typeKey = sheetEntry->attribute("ItemType"); - //XQItemType* itemType = findItemTypeTemplate(typeKey); // throws - XQItemType* itemType = makeItemType(sheetEntry); // throws + // den itemtype des neuen items rausfinden + QString typeKey = sheetEntry->attribute("ItemType"); + //XQItemType* itemType = findItemTypeTemplate(typeKey); // throws + XQItemType* itemType = makeItemType(sheetEntry); // throws - const QString* contentPtr = contentNode->attribute_ptr( sheetEntry->tag_name() ); + const QString* contentPtr = contentNode->attribute_ptr( sheetEntry->tag_name() ); - return new XQItem( itemType, contentPtr ); + return new XQItem( itemType, contentPtr ); } diff --git a/xml/modelsheets.xml b/xml/modelsheets.xml index 2fe8536..f4ee3e1 100644 --- a/xml/modelsheets.xml +++ b/xml/modelsheets.xml @@ -47,6 +47,16 @@ + +
+
+ + + +
+ +
+ From 71c612d8a0430d0a24db5d2fec2fe20bef4d406f Mon Sep 17 00:00:00 2001 From: "PANIK\\chris" Date: Sun, 10 Aug 2025 22:20:48 +0200 Subject: [PATCH 2/7] some commenting. --- src/model/xqviewmodel.cpp | 119 ++++++++++++++++++++++++-------------- src/model/xqviewmodel.h | 8 +-- 2 files changed, 78 insertions(+), 49 deletions(-) diff --git a/src/model/xqviewmodel.cpp b/src/model/xqviewmodel.cpp index a1808eb..61fbe3b 100644 --- a/src/model/xqviewmodel.cpp +++ b/src/model/xqviewmodel.cpp @@ -30,7 +30,7 @@ //Q_GLOBAL_STATIC(XQItem,s_dummyItem) -//! firz +//! hilfsfunkion, zeigt den string-content() für alle elemente der liste void showItemList( const XQItemList& list) { @@ -40,14 +40,7 @@ void showItemList( const XQItemList& list) } -//! firz - -XQViewModel::~XQViewModel() -{ -} - - -//! firz +//! Konstruktur mit parent. XQViewModel::XQViewModel( QObject* parent ) : QStandardItemModel{ parent }, _itemFactory{ XQItemFactory::instance() } @@ -57,7 +50,7 @@ XQViewModel::XQViewModel( QObject* parent ) } -//! firz +//! gibt einen static-cast auf 'invisibleRootItem()' zurück const XQItem& XQViewModel::xqRootItem() { @@ -70,7 +63,7 @@ const XQItem& XQViewModel::xqRootItem() } -//! firz +//! hifsfunktion, die das item zu einen index zurückgibt XQItem& XQViewModel::xqItemFromIndex(const QModelIndex& index) const { @@ -83,14 +76,68 @@ XQItem& XQViewModel::xqItemFromIndex(const QModelIndex& index) const return XQItem::fallBackDummyItem(); } -//! firz +//! hilfsfunktiom, die das erste xqitem einer zeile zurückgibt. XQItem& XQViewModel::xqFirstItem(int row) const { return *static_cast( QStandardItemModel::item(row) ); } -//! firz +//! create the own model structure +void XQViewModel::initModel( const QString& modelName) +{ + /* + model + section + header + section + + + */ + + /* + // #0: Wir suchen die Model-Beschreibung + XQNodePtr modelSheet = _itemFactory.findModelSheet( modelName ); // throws + + // #1: Wir erzeugen die Model-Struktur: Jedes Kind beschreibt einen + // XML-Datentyp, z.B. , + // Jeder XML-Knoten entspricht einer Zeile im späteren Model, jedes + // Attribut wird einem eigenen Feld (XQItem) abgebildet. + + for( const auto& sheetNode : modelSheet->children() ) + { + + + XQItemList list = _itemFactory.makeHeaderRow( sheetNode ); + + // für jeden XML-Knotentyp in der Modelbeschreibung erzeugen wir eine section + addSection(list, sheetNode ); + + // jedes kind kann enthält einen itemType und einen headerItemType. Für + // diese sind eventuell weitere attribute vorhanden, die die im type + // enthaltenen defualt-werte überschreiben. + + for( const auto& sheetChild : sheetNode->children() ) + { + //qDebug() << "---- kloppo: " << sheetChild->tag_name() << ": " << sheetChild->to_string(); + extendItemType( sheetChild ); + } + + + + // empty row: + //XQNodePtr contentNode = XQNode::make_node( sheetNode->tag_name() ); + //XQItemList emptyRow = _itemFactory.makeEmptyRow( contentNode, sheetNode ); + //appendRow( emptyRow ); + + + } // for + */ + +} + + +//! SLOT, der aufgerufen wird, wenn eine edit-action getriggert wurde. void XQViewModel::onActionTriggered(QAction* action) { @@ -138,12 +185,7 @@ void XQViewModel::onActionTriggered(QAction* action) } -/** - * @brief XQViewModel::onCommandRedo called to execute a command ('do'). - * @param command the current command - */ - -//! firz +//! führt die 'redo' action des gegebenen commnds aus. void XQViewModel::onCommandRedo( XQCommand& command ) { @@ -182,12 +224,7 @@ void XQViewModel::onCommandRedo( XQCommand& command ) } -/** - * @brief XQViewModel::onCommandUndo: called to 'undo' a command. - * @param command the command to be undone. - */ - -//! firz +//! führt die 'undo' action des gegebenen commnds aus. void XQViewModel::onCommandUndo( XQCommand& command ) { @@ -341,7 +378,7 @@ void XQViewModel::cmdPasteUndo( XQCommand& command ) // don't clone into clipboard, remove items -//! firz +//! entfernen der selection ohne copy in clipboard. void XQViewModel::cmdDelete( XQCommand& command ) { @@ -358,7 +395,7 @@ void XQViewModel::cmdDelete( XQCommand& command ) } } -//! firz +//! macht 'delete' wirder rückgängig. void XQViewModel::cmdDeleteUndo( XQCommand& command ) { @@ -366,12 +403,7 @@ void XQViewModel::cmdDeleteUndo( XQCommand& command ) } -/** - * @brief XQViewModel::cmdNewRow create one new item row - * @param command the command - */ - -//! firz +//! legt eine neue, leere zeile an. void XQViewModel::cmdNew( XQCommand& command ) { @@ -407,14 +439,14 @@ void XQViewModel::cmdNew( XQCommand& command ) */ } -//! firz +//! entfernt die neu angelegte zeile. void XQViewModel::cmdNewUndo( XQCommand& command ) { } -//! firz +//! schaltet eine section sichtbar oder unsichtbar. void XQViewModel::cmdToggleSection( const QModelIndex& index ) { @@ -458,12 +490,8 @@ void XQViewModel::setTreeTable(XQTreeTable* mainView ) setupViewProperties(); } -/** - * @brief XQViewModel::setupViewProperties set the tree views' properties: context menu policy, - * edit triggers and so on. - */ -//! firz +//! setzt die eigenschaften der TreeTable. void XQViewModel::setupViewProperties() { @@ -476,7 +504,7 @@ void XQViewModel::setupViewProperties() } -//! firz +//! füg eine section mit header hinzu. void XQViewModel::addSection( const XQItemList& list, const XQNodePtr& sheetNode ) { @@ -485,7 +513,7 @@ void XQViewModel::addSection( const XQItemList& list, const XQNodePtr& sheetNode } -//! firz +//! gibt den undo-stack zurück. QUndoStack* XQViewModel::undoStack() { @@ -493,7 +521,7 @@ QUndoStack* XQViewModel::undoStack() } -//! firz +//! setzt den undo-stack. void XQViewModel::setUndoStack( QUndoStack* undoStack ) { @@ -501,7 +529,7 @@ void XQViewModel::setUndoStack( QUndoStack* undoStack ) } -//! firz +//! SLOT, der die erstellung & anzeige es context-menues triggert. void XQViewModel::onShowContextMenu(const QPoint& point) { @@ -510,7 +538,8 @@ void XQViewModel::onShowContextMenu(const QPoint& point) } -//! firz +//! gibt die namen der neuen data-roles zurück. +//! __fix: die alten roles fehlen hier! QHash XQViewModel::roleNames() const { diff --git a/src/model/xqviewmodel.h b/src/model/xqviewmodel.h index f70c9be..5a09049 100644 --- a/src/model/xqviewmodel.h +++ b/src/model/xqviewmodel.h @@ -50,7 +50,7 @@ class XQViewModel : public QStandardItemModel public: XQViewModel(QObject* parent = nullptr); - virtual ~XQViewModel(); + virtual ~XQViewModel() = default; XQTreeTable* treeTable(); virtual void setTreeTable( XQTreeTable* mainView ); @@ -58,10 +58,8 @@ public: QUndoStack* undoStack(); void setUndoStack( QUndoStack* undoStack ); - QHash roleNames() const override; - //! create the own model structure - virtual void initModel( const QString& modelName) = 0; + virtual void initModel( const QString& modelName); //little helpers const XQItem& xqRootItem(); @@ -81,6 +79,8 @@ public: virtual void cmdNew( XQCommand& command ); virtual void cmdNewUndo( XQCommand& command ); + QHash roleNames() const override; + /*! Derzeit wir die default-implementierung von data/setData genutzt. hier wäre dann die From 4ceac220e691003158ff74cc02a95399a1812f47 Mon Sep 17 00:00:00 2001 From: "PANIK\\chris" Date: Mon, 11 Aug 2025 22:27:55 +0200 Subject: [PATCH 3/7] more commenting --- src/application/xqchildmodel.cpp | 18 ------------------ src/application/xqchildmodel.h | 2 +- src/application/xqdocumentstore.cpp | 14 ++++---------- src/application/xqdocumentstore.h | 2 +- src/application/xqmainmodel.cpp | 2 +- src/items/xqitemtype.cpp | 9 +++++++-- src/model/xqcommand.cpp | 4 ++-- src/nodes/znode.cpp | 2 +- src/util/xqexception.cpp | 2 +- src/widgets/xqtreetable.cpp | 10 +++++----- 10 files changed, 23 insertions(+), 42 deletions(-) diff --git a/src/application/xqchildmodel.cpp b/src/application/xqchildmodel.cpp index 9c351e4..8bd71a4 100644 --- a/src/application/xqchildmodel.cpp +++ b/src/application/xqchildmodel.cpp @@ -138,24 +138,6 @@ void XQChildModel::setContent( const XQNodePtr& contentRoot ) } -//! firz - -void XQChildModel::createModelContentChildRow( QStandardItem* parent, XQNodePtr contentNode ) -{ - /* - parent->appendRow( { new XQItem("Optionals", XQItemType::HeaderStyle ), new XQItem( "Value", XQItemType::HeaderStyle )} ); - - for( auto& child : contentNode->children() ) - { - XQItemList list; - list.append( new XQItem( child->attribute("DataItem"), XQItemType::StaticStyle ) ); - list.append( new XQItem( child->attribute("DataValue"), XQItemType::StaticStyle ) ); - parent->appendRow( list ); - } - */ -} - - //! erzeugt ein adhoc-contextmenu, je nachdem welche aktionen gerade möflich sind. void XQChildModel::initContextMenu() diff --git a/src/application/xqchildmodel.h b/src/application/xqchildmodel.h index 6ef0fe3..40dae0b 100644 --- a/src/application/xqchildmodel.h +++ b/src/application/xqchildmodel.h @@ -34,7 +34,7 @@ public: protected: - virtual void createModelContentChildRow(QStandardItem* parent, XQNodePtr contentNode ); + //void setupViewProperties() override; void initContextMenu() override; diff --git a/src/application/xqdocumentstore.cpp b/src/application/xqdocumentstore.cpp index 127b679..dd1ec5d 100644 --- a/src/application/xqdocumentstore.cpp +++ b/src/application/xqdocumentstore.cpp @@ -16,7 +16,7 @@ #include #include -//! firz +//! erzeugt ein docukument XQDocument::XQDocument(const QString& aFileName, const QString& aFriendlyName, XQItem* aTreeItem, XQViewModel* aModelView ) : fileName{ aFileName }, friendlyName{ aFriendlyName }, treeItem{ aTreeItem }, modelView{ aModelView } @@ -24,12 +24,6 @@ XQDocument::XQDocument(const QString& aFileName, const QString& aFriendlyName, X } -//! firz - -XQDocument::~XQDocument() -{ - //delete _documentRoot; -} /// @@ -37,7 +31,7 @@ XQDocument::~XQDocument() /// -//! firz +//! destruktor XQDocumentStore::~XQDocumentStore() { @@ -48,11 +42,11 @@ XQDocumentStore::~XQDocumentStore() } -//! firz +//! erzeugt ein document eintrag void XQDocumentStore::addDocument( const QString& aFileName, const QString& aFriendlyName, XQItem* aTreeItem, XQViewModel* aModelView ) { - XQDocument newDocument( aFileName, aFriendlyName, aTreeItem,aModelView ); + XQDocument newDocument( aFileName, aFriendlyName, aTreeItem, aModelView ); addAtKey( aFileName, newDocument ); // attention: this assumes the presence of the 'ProjectID' value //addAlias( aFileName, aTreeItem->attribute(c_ProjectID) ); diff --git a/src/application/xqdocumentstore.h b/src/application/xqdocumentstore.h index bd379f7..0d789f2 100644 --- a/src/application/xqdocumentstore.h +++ b/src/application/xqdocumentstore.h @@ -28,7 +28,7 @@ struct XQDocument XQDocument() = default; XQDocument( const QString& aFileName, const QString& aFriendlyName, XQItem* aTreeItem, XQViewModel* aModelView ); - virtual ~XQDocument(); + virtual ~XQDocument() = default; QString fileName; // also used as key QString friendlyName; diff --git a/src/application/xqmainmodel.cpp b/src/application/xqmainmodel.cpp index 1a423ae..0b22044 100644 --- a/src/application/xqmainmodel.cpp +++ b/src/application/xqmainmodel.cpp @@ -77,7 +77,7 @@ XQItem* XQMainModel::createTreeEntry( XQNodePtr contentNode ) throw XQException( "createTreeEntry: main model should not be emtpy!" ); } -//! firz +//! leere default implementation void XQMainModel::initContextMenu() { diff --git a/src/items/xqitemtype.cpp b/src/items/xqitemtype.cpp index f02098d..91aef3d 100644 --- a/src/items/xqitemtype.cpp +++ b/src/items/xqitemtype.cpp @@ -125,6 +125,9 @@ XQItemType* XQItemType::replaceAttribute( const QVariant& newValue, int role ) } + +//! formatiert den content() string eines items. + QVariant XQItemType::formatText( const XQItem& item ) const { XQItem::UnitType uType = unitType(); @@ -134,7 +137,8 @@ QVariant XQItemType::formatText( const XQItem& item ) const return cont; } -//! firz + +//! formatiert einen zahlenwert als string mit einheit. QString XQItemType::formatToSI( const QString& valueTxt, XQItem::UnitType unitType ) const { @@ -172,7 +176,8 @@ QString XQItemType::formatToSI( const QString& valueTxt, XQItem::UnitType unitTy } -//! firz + +//! entfernt die einheit aus einem formatierten string QString XQItemType::unFormatFromSI(const QString& formText ) const { diff --git a/src/model/xqcommand.cpp b/src/model/xqcommand.cpp index 931ab71..0fcf876 100644 --- a/src/model/xqcommand.cpp +++ b/src/model/xqcommand.cpp @@ -17,7 +17,7 @@ #include -//! firz +//! hilfsfunktion: zeigt alle position und die zugehörigen knoten an. void XQNodeStore::dumpList( const QString& title ) const { @@ -37,7 +37,7 @@ XQCommand::XQCommand(CmdType cmdType, XQViewModel* modelView ) } -//! firz +//! destruktor XQCommand::~XQCommand() { diff --git a/src/nodes/znode.cpp b/src/nodes/znode.cpp index 2452bb4..9b3aa4a 100644 --- a/src/nodes/znode.cpp +++ b/src/nodes/znode.cpp @@ -15,7 +15,7 @@ #include -//! firz +//! überwachungszähler namespace znode { diff --git a/src/util/xqexception.cpp b/src/util/xqexception.cpp index 762ee46..95c483a 100644 --- a/src/util/xqexception.cpp +++ b/src/util/xqexception.cpp @@ -14,7 +14,7 @@ #include -//! firz +//! erzeugt einen std::runtime_error mit text und optionalem parameter XQException::XQException(const QString& what, const QString& param ) : std::runtime_error( param.isEmpty() ? what.toStdString() : QString( "%1: %2" ).arg(what,param).toStdString( ) ) diff --git a/src/widgets/xqtreetable.cpp b/src/widgets/xqtreetable.cpp index e282704..c863082 100644 --- a/src/widgets/xqtreetable.cpp +++ b/src/widgets/xqtreetable.cpp @@ -20,7 +20,7 @@ #define DB_TIMESTAMP QTime::currentTime().toString(" -- HH:mm:ss.zzz") -//! firz +//! standardkonstruktor XQTreeTable::XQTreeTable(QWidget* parent) : QTreeView(parent) @@ -36,15 +36,15 @@ XQTreeTable::XQTreeTable(QWidget* parent) } -//! firz +//! gibt die verbundene modelview zurück, cast auf 'model()' XQViewModel* XQTreeTable::modelView() { return static_cast(model()); } -// __fixme: necessary? -//! firz + +//! shortcut: gibt das item für index zurück XQItem& XQTreeTable::xqItemFromIndex(const QModelIndex& index ) { @@ -52,7 +52,7 @@ XQItem& XQTreeTable::xqItemFromIndex(const QModelIndex& index ) } -//! firz +//! override von 'currentChanged' (noch nicht implementiert) void XQTreeTable::currentChanged(const QModelIndex& current, const QModelIndex& previous) { From 756ec3f1fc8c50bcf10888bfdf68354f685e66c6 Mon Sep 17 00:00:00 2001 From: "PANIK\\chris" Date: Mon, 11 Aug 2025 22:55:32 +0200 Subject: [PATCH 4/7] event more commenting. --- src/model/xqnode.cpp | 15 +++++++-------- src/model/xqnodewriter.cpp | 5 +++-- src/model/xqselectionmodel.cpp | 6 +++--- src/model/xqsimpleclipboard.cpp | 6 ++++-- src/widgets/xqcontextmenu.cpp | 27 ++++++++------------------- src/widgets/xqcontextmenu.h | 1 - src/widgets/xqtreetable.cpp | 26 ++++---------------------- src/widgets/xqtreetable.h | 1 - xml/modelsheets.xml | 6 +++--- 9 files changed, 32 insertions(+), 61 deletions(-) diff --git a/src/model/xqnode.cpp b/src/model/xqnode.cpp index e310d13..3700eb1 100644 --- a/src/model/xqnode.cpp +++ b/src/model/xqnode.cpp @@ -18,7 +18,7 @@ -//! firz +//! hilfsfunktion: gibt diesen teilbaum rekursiv aus void inspect( const XQNodePtr& node, int indent ) { @@ -34,9 +34,7 @@ void inspect( const XQNodePtr& node, int indent ) } - - -//! firz +//! operator<< für QString und std::ostream // Overload the operator<< for MyClass and std::ostream std::ostream& operator<<(std::ostream& os, const QString& obj) @@ -47,7 +45,8 @@ std::ostream& operator<<(std::ostream& os, const QString& obj) } -//! firz +//! 'QString' implementation von split + template<> bool znode::zpayload::xstr_split_by(const QString& entry, const QString& sep, QString& key, QString& value ) { @@ -60,7 +59,7 @@ bool znode::zpayload::xstr_split_by(const QString& entry, const QString } -//! firz +//! 'QString' implementation von substr template<> QString znode::zpayload::xstr_sub_str( const QString& entry, int pos ) const @@ -69,7 +68,7 @@ QString znode::zpayload::xstr_sub_str( const QString& entry, int pos ) } -//! firz +//! 'QString' implementation vom test auf 'empty' template<> bool znode::zpayload::xstr_is_empty(const QString& entry ) const @@ -78,7 +77,7 @@ bool znode::zpayload::xstr_is_empty(const QString& entry ) const } -//! firz +//! 'QString' varianten der keystrings. template<> const QString znode::zpayload::cType = "Type"; diff --git a/src/model/xqnodewriter.cpp b/src/model/xqnodewriter.cpp index 185702d..d6f139a 100644 --- a/src/model/xqnodewriter.cpp +++ b/src/model/xqnodewriter.cpp @@ -22,7 +22,7 @@ -//! firz +//! schreibt einen (teil)baum in ein file void XQNodeWriter::dumpTree( XQNodePtr rootNode, const QString& fileName ) const { @@ -40,7 +40,8 @@ void XQNodeWriter::dumpTree( XQNodePtr rootNode, const QString& fileName ) const treeFile.close(); } -//! firz + +//! schreibt einen knoten in einen stream void XQNodeWriter::dumpNode( QXmlStreamWriter& writer, XQNodePtr node ) const { diff --git a/src/model/xqselectionmodel.cpp b/src/model/xqselectionmodel.cpp index b829604..91144f7 100644 --- a/src/model/xqselectionmodel.cpp +++ b/src/model/xqselectionmodel.cpp @@ -17,7 +17,7 @@ -//! firz +//! konstruiert ein selectionmodel. XQSelectionModel::XQSelectionModel(QAbstractItemModel* model) : QItemSelectionModel(model) @@ -26,7 +26,7 @@ XQSelectionModel::XQSelectionModel(QAbstractItemModel* model) } -//! firz +//! konstruiert ein selectionmodel. XQSelectionModel::XQSelectionModel(QAbstractItemModel* model, QObject* parent) : QItemSelectionModel(model, parent) @@ -40,7 +40,7 @@ XQSelectionModel::XQSelectionModel(QAbstractItemModel* model, QObject* parent) void XQSelectionModel::select(const QItemSelection& selection, QItemSelectionModel::SelectionFlags command) { // step #0: fetch selected indices. - QModelIndexList list = selection.indexes(); + const QModelIndexList list = selection.indexes(); if (list.isEmpty() || selectedRows().isEmpty() ) return QItemSelectionModel::select(selection, command); diff --git a/src/model/xqsimpleclipboard.cpp b/src/model/xqsimpleclipboard.cpp index 3f15017..d89d4e8 100644 --- a/src/model/xqsimpleclipboard.cpp +++ b/src/model/xqsimpleclipboard.cpp @@ -16,7 +16,7 @@ #include -//! firz +//! true, wenn paste an er stelle 'curIdx' möglich ist. bool XQSimpleClipBoard::canPaste( const QModelIndex& curIdx ) const { @@ -38,7 +38,9 @@ bool XQSimpleClipBoard::canPaste( const QModelIndex& curIdx ) const } -//! firz +//! erzeugt eine positions-list aus der liste selectierter indicies. +//! Der mit seiner position zusammen gespeicherter knoten muss hier +//! gekloned werden. void XQSimpleClipBoard::saveNodes( const QModelIndexList& list ) { diff --git a/src/widgets/xqcontextmenu.cpp b/src/widgets/xqcontextmenu.cpp index 2e71322..316fdab 100644 --- a/src/widgets/xqcontextmenu.cpp +++ b/src/widgets/xqcontextmenu.cpp @@ -15,21 +15,7 @@ #include -//! firz - -XQContextMenu::XQContextMenu(const QString& title, QWidget* parent ) - : QMenu( title, parent ) -{ - /* - QAction* titleDummy = new QAction(title,this); - QWidget::addAction(titleDummy); - addSeparator(); - titleDummy->setEnabled(false); - */ -} - - -//! firz +//! konstruktor. XQContextMenu::XQContextMenu(QWidget* parent) : QMenu( parent ) @@ -37,7 +23,8 @@ XQContextMenu::XQContextMenu(QWidget* parent) } -//! firz +//! erzeugt eine action mit text +//! aus einem command-type und fügt sie hinzu. void XQContextMenu::addAction(const QString& text, XQCommand::CmdType commandType, bool enabled) { @@ -49,7 +36,8 @@ void XQContextMenu::addAction(const QString& text, XQCommand::CmdType commandTyp } -//! firz +//! erzeugt eine action mit text und icon aus +//! einem command-type und fügt sie hinzu. void XQContextMenu::addAction(const QString& iconKey, const QString& name, XQCommand::CmdType commandType, bool enabled) { @@ -57,7 +45,8 @@ void XQContextMenu::addAction(const QString& iconKey, const QString& name, XQCom } -//! firz +//! erzeugt eine action mit text und icon aus +//! einem command-type und fügt sie hinzu. void XQContextMenu::addAction(const QIcon& icon, const QString& text, XQCommand::CmdType commandType, bool enabled) { @@ -69,7 +58,7 @@ void XQContextMenu::addAction(const QIcon& icon, const QString& text, XQCommand: } -//! firz +//! schaltet die action mit 'commandType' void XQContextMenu::setActionEnabled(XQCommand::CmdType commandType, bool enabled) { diff --git a/src/widgets/xqcontextmenu.h b/src/widgets/xqcontextmenu.h index b4be882..02d6f66 100644 --- a/src/widgets/xqcontextmenu.h +++ b/src/widgets/xqcontextmenu.h @@ -29,7 +29,6 @@ class XQContextMenu : public QMenu public: - XQContextMenu(const QString& title, QWidget* parent = nullptr ); XQContextMenu(QWidget* parent = nullptr ); virtual ~XQContextMenu() = default; diff --git a/src/widgets/xqtreetable.cpp b/src/widgets/xqtreetable.cpp index c863082..7a9c400 100644 --- a/src/widgets/xqtreetable.cpp +++ b/src/widgets/xqtreetable.cpp @@ -137,25 +137,7 @@ void XQTreeTable::mouseMoveEvent(QMouseEvent* event) } -//! firz - -void XQTreeTable::mouseDoubleClickEvent(QMouseEvent* event) -{ - /* - QModelIndex idxFromPos = indexAt(event->pos()); - if (idxFromPos.isValid()) - { - if ( NTItem::isHeaderType(idxFromPos) && cursor().shape() == Qt::SplitHCursor) - { - return resizeColumnToContents(idxFromPos.column()); - } - } - */ - QTreeView::mouseDoubleClickEvent(event); -} - - -//! firz +//! speichert die start-position fürs header-resizing. void XQTreeTable::mousePressEvent(QMouseEvent* event) { @@ -174,18 +156,18 @@ void XQTreeTable::mousePressEvent(QMouseEvent* event) } -//! firz +//! speichert die index-position fürs header-resizing. void XQTreeTable::mouseReleaseEvent(QMouseEvent* event) { // reset index for resize column _indexToResize = QModelIndex(); - setCursor(QCursor(Qt::ArrowCursor)); + setCursor(QCursor(Qt::ArrowCursor)); QTreeView::mouseReleaseEvent(event); } -//! firz +//! zoom-in / zoom-out mit mausrad & ctrl void XQTreeTable::wheelEvent(QWheelEvent* event) { diff --git a/src/widgets/xqtreetable.h b/src/widgets/xqtreetable.h index 123b4f7..39772de 100644 --- a/src/widgets/xqtreetable.h +++ b/src/widgets/xqtreetable.h @@ -46,7 +46,6 @@ protected: void currentChanged(const QModelIndex& current, const QModelIndex& previous) override; void mouseMoveEvent(QMouseEvent* event) override; - void mouseDoubleClickEvent(QMouseEvent* event) override; void mouseReleaseEvent(QMouseEvent* event) override; void mousePressEvent(QMouseEvent* event) override; void mouseResizeHeaderEntry(int xpos); diff --git a/xml/modelsheets.xml b/xml/modelsheets.xml index f4ee3e1..2bf96a3 100644 --- a/xml/modelsheets.xml +++ b/xml/modelsheets.xml @@ -50,9 +50,9 @@
- - - +
+ +
From 7c267bcb3310aef3a1f71df3e4586d3b696b03f5 Mon Sep 17 00:00:00 2001 From: "PANIK\\chris" Date: Tue, 12 Aug 2025 23:41:36 +0200 Subject: [PATCH 5/7] mini sucess --- src/application/xqappdata.h | 4 ++ src/application/xqmainmodel.cpp | 21 +++++++---- src/application/xqmainwindow.cpp | 5 ++- src/items/xqitemfactory.cpp | 63 +++++++++++++++++++++++++------- src/items/xqitemfactory.h | 19 ++++++---- src/model/xqviewmodel.cpp | 2 +- src/model/xqviewmodel.h | 15 ++------ xml/modelsheets.xml | 28 +++++++++++--- 8 files changed, 109 insertions(+), 48 deletions(-) diff --git a/src/application/xqappdata.h b/src/application/xqappdata.h index eeacf2f..5970410 100644 --- a/src/application/xqappdata.h +++ b/src/application/xqappdata.h @@ -24,6 +24,10 @@ const QString c_Version = "0.1.1 04.09.2024"; +const QString c_ItemType = "ItemType"; +const QString c_Caption = "Caption"; +const QString c_Header = "Header"; + const QString c_MainModelName = "DocumentTreeModel"; const QString c_ChildModelName = "DocumentDetailsModel"; const QString c_ProjectID = "ProjectID"; diff --git a/src/application/xqmainmodel.cpp b/src/application/xqmainmodel.cpp index 0b22044..a3d96b6 100644 --- a/src/application/xqmainmodel.cpp +++ b/src/application/xqmainmodel.cpp @@ -38,17 +38,22 @@ XQMainModel::XQMainModel(QObject *parent ) void XQMainModel::initModel(const QString& modelName) { - XQNodePtr modelSheet = _itemFactory.findModelSheet( modelName ); - // #1: create structure: create static sections for this model - for( auto& sheetNode : modelSheet->children() ) + // model rootnode finden -> + XQNodePtr modelSheet = _itemFactory.findModelSheet( modelName ); // throws + + // #1: über alle sections + for( auto& section : modelSheet->children() ) { - qDebug() << " create main model: " << sheetNode->tag_name(); + // #2: (optionalen) header erzeugen + const XQNodePtr header = section->find_child_by_tag_name( "Header"); + if( header ) + { + XQItemList list = _itemFactory.makeHeader( header ); + Q_ASSERT(!list.isEmpty()); + addSection(list, section ); + } - XQItemList list = { _itemFactory.makeHeaderItem( sheetNode ) }; - Q_ASSERT(!list.isEmpty()); - addSection(list, sheetNode ); - //appendRow( list ); } } diff --git a/src/application/xqmainwindow.cpp b/src/application/xqmainwindow.cpp index 73f56b7..37f8297 100644 --- a/src/application/xqmainwindow.cpp +++ b/src/application/xqmainwindow.cpp @@ -85,10 +85,11 @@ void XQMainWindow::initMainWindow() // hand over left side navigation tree _mainModelView.setTreeTable(_mainTreeView); // #1. init the left side main tree view - _mainModelView.initModel( c_MainModelName ); + //_mainModelView.initModel( c_MainModelName ); + _mainModelView.initModel( "ModelX" ); // #2. load demo data - loadDocument( c_DocumentFileName1 ); + //loadDocument( c_DocumentFileName1 ); //loadDocument( c_DocumentFileName2 ); qDebug() << " --- all here: " << XQNode::s_Count; diff --git a/src/items/xqitemfactory.cpp b/src/items/xqitemfactory.cpp index 20c73ac..718097e 100644 --- a/src/items/xqitemfactory.cpp +++ b/src/items/xqitemfactory.cpp @@ -135,19 +135,6 @@ XQItem* XQItemFactory::makeHeaderItem( const XQNodePtr& sheetEntry ) } -XQItem* XQItemFactory::makeContentItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry ) -{ - // den itemtype des neuen items rausfinden - QString typeKey = sheetEntry->attribute("ItemType"); - //XQItemType* itemType = findItemTypeTemplate(typeKey); // throws - XQItemType* itemType = makeItemType(sheetEntry); // throws - - const QString* contentPtr = contentNode->attribute_ptr( sheetEntry->tag_name() ); - - return new XQItem( itemType, contentPtr ); - -} - XQItem* XQItemFactory::makeTreeChildItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry ) { @@ -295,6 +282,56 @@ QVariant XQItemFactory::makeVariant( int dataRole, const QString& source ) const /// ------------------------------------------------ /// + +XQItem* XQItemFactory::makeContentItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry ) +{ + // den itemtype des neuen items rausfinden + QString typeKey = sheetEntry->attribute(c_ItemType); + //XQItemType* itemType = findItemTypeTemplate(typeKey); // throws + XQItemType* itemType = makeItemType(sheetEntry); // throws + // das ist Unterschied zum normalen Item: Der Titel kommt aus der Modelbeschreibung + const QString* contentPtr = contentNode->attribute_ptr( sheetEntry->tag_name() ); + + return new XQItem( itemType, contentPtr ); + +} + + XQItem* XQItemFactory::makeItem( const XQNodePtr& sheetNode, const XQNodePtr& contentNode ) +{ + // den itemtype des neuen items rausfinden + QString typeKey = sheetNode->attribute(c_ItemType); + //XQItemType* itemType = makeItemType(sheetEntry); // throws + XQItemType* itemType = findItemTypeTemplate(typeKey); + // fallunterscheidung beim inhalt: + const QString* contentPtr{}; + // das ist Unterschied zum normalen Item: Der Titel kommt aus der Modelbeschreibung + if(!contentNode) + contentPtr = sheetNode->attribute_ptr(c_Caption); + else + // der content wird indirect über den tag-name des sheetnode geholt + contentPtr = contentNode->attribute_ptr( sheetNode->tag_name() ); + + return new XQItem( itemType, contentPtr ); + +} + +XQItemList XQItemFactory::makeHeader( const XQNodePtr& headerNode ) +{ + + XQItemList list; + + for( const auto& headerEntry : headerNode->children() ) + { + qDebug() << " --- headerEntry: " << headerEntry->tag_name() << ": " << headerEntry->attribute( "ItemType") << headerEntry->attribute( "Caption"); + XQItem* headerItem = makeItem( headerEntry ); + list.append( headerItem ); + } + + return list; + +} + + XQItemList XQItemFactory::makeHeaderRow( const XQNodePtr& sheetNode ) { XQItemList list; diff --git a/src/items/xqitemfactory.h b/src/items/xqitemfactory.h index 8829d13..db0b645 100644 --- a/src/items/xqitemfactory.h +++ b/src/items/xqitemfactory.h @@ -32,15 +32,20 @@ public: XQNodePtr findModelSheet( const QString& modelName ) const; - XQItem* makeHeaderItem(const XQNodePtr& typeSheetNode ); - XQItem* makeContentItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry ); - XQItem* makeTreeChildItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry ); + XQItem* makeHeaderItem(const XQNodePtr& typeSheetNode ); + XQItem* makeContentItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry ); + XQItem* makeTreeChildItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry ); - virtual XQItemList makeHeaderRow( const XQNodePtr& sheetNode ); - virtual XQItemList makeContentRow( const XQNodePtr& contentNode, const XQNodePtr& sheetNode ); - virtual XQItemList makeEmptyRow( const XQNodePtr& contentNode, const XQNodePtr& sheetNode ); + XQItem* makeItem( const XQNodePtr& sheetNode, const XQNodePtr& contentNode=nullptr); + XQItemList makeHeader( const XQNodePtr& sheetNode ); + + + + XQItemList makeHeaderRow( const XQNodePtr& sheetNode ); + XQItemList makeContentRow( const XQNodePtr& contentNode, const XQNodePtr& sheetNode ); + XQItemList makeEmptyRow( const XQNodePtr& contentNode, const XQNodePtr& sheetNode ); // wozu ist das gut? - virtual XQItemList createGenericRow( const XQNodePtr& contentNode, const XQNodePtr& sheetNode ); + XQItemList createGenericRow( const XQNodePtr& contentNode, const XQNodePtr& sheetNode ); void setItemDataFromString( XQItem& item, const QString& roleKey, const QString& source ) const; diff --git a/src/model/xqviewmodel.cpp b/src/model/xqviewmodel.cpp index 61fbe3b..2fab942 100644 --- a/src/model/xqviewmodel.cpp +++ b/src/model/xqviewmodel.cpp @@ -91,7 +91,7 @@ void XQViewModel::initModel( const QString& modelName) section header section - + ... */ diff --git a/src/model/xqviewmodel.h b/src/model/xqviewmodel.h index 5a09049..585253f 100644 --- a/src/model/xqviewmodel.h +++ b/src/model/xqviewmodel.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -30,18 +31,7 @@ class XQItem; class XQCommand; -/** - * @brief Abstract baseclass of all modelviews: Extends QStandardItemModel with a treeview. - */ - -// might be own implementation of QAbstractItemModel, not done yet. -// using QStandardItemModel = XQSimpleItemModel; -using QStandardItemModel = QStandardItemModel; - -/** - * @brief The XQViewModel class: An extendend QStandardItem model - * containing its own view. - */ +//! ein erweitertes QStandardItemModel welches 'seine' view bereits enthält. class XQViewModel : public QStandardItemModel { @@ -131,6 +121,7 @@ protected: XQModelSectionList _sections; XQTreeTable* _treeTable{}; + //QAbstractItemView* _treeTable{}; QUndoStack* _undoStack{}; XQContextMenu* _contextMenu{}; diff --git a/xml/modelsheets.xml b/xml/modelsheets.xml index 2bf96a3..10aa97e 100644 --- a/xml/modelsheets.xml +++ b/xml/modelsheets.xml @@ -47,15 +47,33 @@ - -
+ +
+
- - + + + +
+
+
+ +
+ + + +
+
+
+ +
+ + +
- +
From a789874635a927f58e3a4c971a92176abe491780 Mon Sep 17 00:00:00 2001 From: "DIASPORA\\chris" Date: Wed, 13 Aug 2025 19:25:14 +0200 Subject: [PATCH 6/7] moved back to old icon style. --- src/application/xqappdata.cpp | 97 +++++++++++++++++++++++++++++++- src/application/xqappdata.h | 2 +- src/application/xqchildmodel.cpp | 2 +- 3 files changed, 96 insertions(+), 5 deletions(-) diff --git a/src/application/xqappdata.cpp b/src/application/xqappdata.cpp index d2b74b5..d2851f3 100644 --- a/src/application/xqappdata.cpp +++ b/src/application/xqappdata.cpp @@ -30,12 +30,17 @@ namespace XQAppData return static_cast>(e); } + + /* class XQAppIconMap : public QMap { public: + XQAppIconMap() = default; + void init() { + auto from = to_underlying(QIcon::ThemeIcon::AddressBookNew); auto to = to_underlying(QIcon::ThemeIcon::NThemeIcons); for (auto i = from; i < to; ++i) @@ -46,16 +51,102 @@ namespace XQAppData if (!icon.isNull()) insert(icon.name(), icon); } + } }; + */ + + using XQAppIconMap=QMap; + + static XQAppIconMap s_IconMap + { + { "icnFolder" , QApplication::style()->standardIcon(QStyle::SP_DirIcon) }, + { "icn02Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)}, + { "icn03Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)}, + { "icn04Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)}, + { "icn05Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)}, + { "icn06Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)}, + { "icn07Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)}, + { "icn08Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)}, + { "icn09Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)}, + { "icn10Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)}, + { "icn11Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowBack)}, + { "icn12Dummy", QApplication::style()->standardIcon(QStyle::SP_DirIcon)}, + { "icn13Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward)}, + { "icn14Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowDown)}, + { "icn15Dummy", QApplication::style()->standardIcon(QStyle::SP_DirLinkIcon)}, + { "icn16Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward)}, + { "icn17Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowForward)}, + { "icn18Dummy", QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon)}, + { "icn19Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaStop)}, + { "icn20Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowLeft)}, + { "icn21Dummy", QApplication::style()->standardIcon(QStyle::SP_DockWidgetCloseButton)}, + { "icn22Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolume)}, + { "icn23Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowRight)}, + { "icn24Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveCDIcon)}, + { "icn25Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolumeMuted)}, + { "icn26Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowUp)}, + { "icn27Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveDVDIcon)}, + { "icn28Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical)}, + { "icn29Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserReload)}, + { "icn30Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveFDIcon)}, + { "icn31Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation)}, + { "icn32Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserStop)}, + { "icn33Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveHDIcon)}, + { "icn34Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion)}, + { "icn35Dummy", QApplication::style()->standardIcon(QStyle::SP_CommandLink)}, + { "icn36Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveNetIcon)}, + { "icn37Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning)}, + { "icn38Dummy", QApplication::style()->standardIcon(QStyle::SP_ComputerIcon)}, + { "icn39Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)}, + { "icn40Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarCloseButton)}, + { "icn41Dummy", QApplication::style()->standardIcon(QStyle::SP_CustomBase)}, + { "icn42Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)}, + { "icn43Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarContextHelpButton)}, + { "icn44Dummy", QApplication::style()->standardIcon(QStyle::SP_DesktopIcon)}, + { "icn45Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)}, + { "icn46Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMaxButton)}, + { "icn47Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogApplyButton)}, + { "icn48Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)}, + { "icn49Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMenuButton)}, + { "icn50Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton)}, + { "icn51Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)}, + { "icn52Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMinButton)}, + { "icn53Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCloseButton)}, + { "icn54Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)}, + { "icn55Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarNormalButton)}, + { "icn56Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogDiscardButton)}, + { "icn57Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)}, + { "icn58Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarShadeButton)}, + { "icn59Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogHelpButton)}, + { "icn60Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)}, + { "icn61Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarUnshadeButton)}, + { "icn62Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogNoButton)}, + { "icn63Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)}, + { "icn64Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarHorizontalExtensionButton)}, + { "icn65Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogOkButton)}, + { "icn66Dummy", QApplication::style()->standardIcon(QStyle::SP_FileIcon)}, + { "icn67Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarVerticalExtensionButton)}, + { "icn68Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogResetButton)}, + { "icn70Dummy", QApplication::style()->standardIcon(QStyle::SP_FileLinkIcon)}, + { "icn71Dummy", QApplication::style()->standardIcon(QStyle::SP_TrashIcon)}, + { "icn72Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogSaveButton)}, + { "icn73Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPause)}, + { "icn74Dummy", QApplication::style()->standardIcon(QStyle::SP_VistaShield)}, + { "icn75Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogYesButton)}, + { "icn76Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPlay)}, + { "icn77Dummy", QApplication::style()->standardIcon(QStyle::SP_DirClosedIcon)}, + { "icn79Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekBackward)}, + { "icn80Dummy", QApplication::style()->standardIcon(QStyle::SP_DirHomeIcon)}, + { "icn81Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekForward)} + }; - static XQAppIconMap s_IconMap; bool hasTypeIcon(const QString& key ) { - if(s_IconMap.isEmpty()) - s_IconMap.init(); + //if(s_IconMap.isEmpty()) + // s_IconMap.init(); return !key.isEmpty() && s_IconMap.contains(key); } diff --git a/src/application/xqappdata.h b/src/application/xqappdata.h index 5970410..7237337 100644 --- a/src/application/xqappdata.h +++ b/src/application/xqappdata.h @@ -44,7 +44,7 @@ const QString c_FriendlyName = "FriendlyName"; namespace XQAppData { - class XQAppIconMap; + //class XQAppIconMap; bool hasTypeIcon(const QString& key ); QIcon typeIcon(const QString& key ); diff --git a/src/application/xqchildmodel.cpp b/src/application/xqchildmodel.cpp index 8bd71a4..c22b44b 100644 --- a/src/application/xqchildmodel.cpp +++ b/src/application/xqchildmodel.cpp @@ -36,7 +36,7 @@ XQChildModel::XQChildModel( QObject *parent ) void XQChildModel::initModel(const QString& modelName) { - auto extendItemType = [=](const XQNodePtr& entry) + auto extendItemType = [=,this](const XQNodePtr& entry) { const QString& typeName = entry->attribute("ItemType"); XQItemType* itemType = _itemFactory.findItemTypeTemplate( typeName); // throws From 618d5d2348efe54a36bf5727af37950a289c314c Mon Sep 17 00:00:00 2001 From: "PANIK\\chris" Date: Wed, 13 Aug 2025 21:02:07 +0200 Subject: [PATCH 7/7] new model structure works for now. --- src/application/xqappdata.cpp | 335 ++++++++++++++++--------------- src/application/xqmainmodel.cpp | 2 +- src/application/xqmainwindow.cpp | 5 +- xml/modelsheets.xml | 19 +- 4 files changed, 181 insertions(+), 180 deletions(-) diff --git a/src/application/xqappdata.cpp b/src/application/xqappdata.cpp index d2851f3..7cc6c9e 100644 --- a/src/application/xqappdata.cpp +++ b/src/application/xqappdata.cpp @@ -31,7 +31,7 @@ namespace XQAppData } - /* + class XQAppIconMap : public QMap { public: @@ -40,7 +40,86 @@ namespace XQAppData void init() { - + insert( "DirIcon" , QApplication::style()->standardIcon(QStyle::SP_DirIcon)); + insert( "FileDialogBack", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)); + insert( "FileDialogContentsView", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)); + insert( "FileDialogDetailedView", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)); + insert( "icn05Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)); + insert( "icn06Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)); + insert( "icn07Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)); + insert( "icn08Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)); + insert( "icn09Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)); + insert( "icn10Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)); + insert( "icn11Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowBack)); + insert( "icn12Dummy", QApplication::style()->standardIcon(QStyle::SP_DirIcon)); + insert( "icn13Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward)); + insert( "icn14Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowDown)); + insert( "icn15Dummy", QApplication::style()->standardIcon(QStyle::SP_DirLinkIcon)); + insert( "icn16Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward)); + insert( "icn17Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowForward)); + insert( "icn18Dummy", QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon)); + insert( "icn19Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaStop)); + insert( "icn20Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowLeft)); + insert( "icn21Dummy", QApplication::style()->standardIcon(QStyle::SP_DockWidgetCloseButton)); + insert( "icn22Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolume)); + insert( "icn23Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowRight)); + insert( "icn24Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveCDIcon)); + insert( "icn25Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolumeMuted)); + insert( "icn26Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowUp)); + insert( "icn27Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveDVDIcon)); + insert( "icn28Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical)); + insert( "icn29Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserReload)); + insert( "icn30Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveFDIcon)); + insert( "icn31Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation)); + insert( "icn32Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserStop)); + insert( "icn33Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveHDIcon)); + insert( "icn34Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion)); + insert( "icn35Dummy", QApplication::style()->standardIcon(QStyle::SP_CommandLink)); + insert( "icn36Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveNetIcon)); + insert( "icn37Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning)); + insert( "icn38Dummy", QApplication::style()->standardIcon(QStyle::SP_ComputerIcon)); + insert( "icn39Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)); + insert( "icn40Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarCloseButton)); + insert( "icn41Dummy", QApplication::style()->standardIcon(QStyle::SP_CustomBase)); + insert( "icn42Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)); + insert( "icn43Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarContextHelpButton)); + insert( "icn44Dummy", QApplication::style()->standardIcon(QStyle::SP_DesktopIcon)); + insert( "icn45Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)); + insert( "icn46Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMaxButton)); + insert( "icn47Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogApplyButton)); + insert( "icn48Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)); + insert( "icn49Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMenuButton)); + insert( "icn50Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton)); + insert( "icn51Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)); + insert( "icn52Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMinButton)); + insert( "icn53Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCloseButton)); + insert( "icn54Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)); + insert( "icn55Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarNormalButton)); + insert( "icn56Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogDiscardButton)); + insert( "icn57Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)); + insert( "icn58Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarShadeButton)); + insert( "icn59Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogHelpButton)); + insert( "icn60Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)); + insert( "icn61Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarUnshadeButton)); + insert( "icn62Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogNoButton)); + insert( "icn63Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)); + insert( "icn64Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarHorizontalExtensionButton)); + insert( "icn65Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogOkButton)); + insert( "FileIcon", QApplication::style()->standardIcon(QStyle::SP_FileIcon)); + insert( "icn67Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarVerticalExtensionButton)); + insert( "icn68Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogResetButton)); + insert( "icn70Dummy", QApplication::style()->standardIcon(QStyle::SP_FileLinkIcon)); + insert( "TrashIcon", QApplication::style()->standardIcon(QStyle::SP_TrashIcon)); + insert( "icn72Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogSaveButton)); + insert( "icn73Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPause)); + insert( "icn74Dummy", QApplication::style()->standardIcon(QStyle::SP_VistaShield)); + insert( "icn75Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogYesButton)); + insert( "icn76Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPlay)); + insert( "icn77Dummy", QApplication::style()->standardIcon(QStyle::SP_DirClosedIcon)); + insert( "icn79Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekBackward)); + insert( "DirHomeIcon", QApplication::style()->standardIcon(QStyle::SP_DirHomeIcon)); + insert( "icn81Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekForward)); + /* auto from = to_underlying(QIcon::ThemeIcon::AddressBookNew); auto to = to_underlying(QIcon::ThemeIcon::NThemeIcons); for (auto i = from; i < to; ++i) @@ -51,102 +130,30 @@ namespace XQAppData if (!icon.isNull()) insert(icon.name(), icon); } + */ } }; - */ - using XQAppIconMap=QMap; + + + /* + Nein, so nicht! QApplication::style() gibts hier noch nicht -> aua! static XQAppIconMap s_IconMap { - { "icnFolder" , QApplication::style()->standardIcon(QStyle::SP_DirIcon) }, - { "icn02Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)}, - { "icn03Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)}, - { "icn04Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)}, - { "icn05Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)}, - { "icn06Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)}, - { "icn07Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)}, - { "icn08Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)}, - { "icn09Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)}, - { "icn10Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)}, - { "icn11Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowBack)}, - { "icn12Dummy", QApplication::style()->standardIcon(QStyle::SP_DirIcon)}, - { "icn13Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward)}, - { "icn14Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowDown)}, - { "icn15Dummy", QApplication::style()->standardIcon(QStyle::SP_DirLinkIcon)}, - { "icn16Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward)}, - { "icn17Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowForward)}, - { "icn18Dummy", QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon)}, - { "icn19Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaStop)}, - { "icn20Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowLeft)}, - { "icn21Dummy", QApplication::style()->standardIcon(QStyle::SP_DockWidgetCloseButton)}, - { "icn22Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolume)}, - { "icn23Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowRight)}, - { "icn24Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveCDIcon)}, - { "icn25Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolumeMuted)}, - { "icn26Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowUp)}, - { "icn27Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveDVDIcon)}, - { "icn28Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical)}, - { "icn29Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserReload)}, - { "icn30Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveFDIcon)}, - { "icn31Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation)}, - { "icn32Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserStop)}, - { "icn33Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveHDIcon)}, - { "icn34Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion)}, - { "icn35Dummy", QApplication::style()->standardIcon(QStyle::SP_CommandLink)}, - { "icn36Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveNetIcon)}, - { "icn37Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning)}, - { "icn38Dummy", QApplication::style()->standardIcon(QStyle::SP_ComputerIcon)}, - { "icn39Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)}, - { "icn40Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarCloseButton)}, - { "icn41Dummy", QApplication::style()->standardIcon(QStyle::SP_CustomBase)}, - { "icn42Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)}, - { "icn43Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarContextHelpButton)}, - { "icn44Dummy", QApplication::style()->standardIcon(QStyle::SP_DesktopIcon)}, - { "icn45Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)}, - { "icn46Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMaxButton)}, - { "icn47Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogApplyButton)}, - { "icn48Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)}, - { "icn49Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMenuButton)}, - { "icn50Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton)}, - { "icn51Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)}, - { "icn52Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMinButton)}, - { "icn53Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCloseButton)}, - { "icn54Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)}, - { "icn55Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarNormalButton)}, - { "icn56Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogDiscardButton)}, - { "icn57Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)}, - { "icn58Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarShadeButton)}, - { "icn59Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogHelpButton)}, - { "icn60Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)}, - { "icn61Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarUnshadeButton)}, - { "icn62Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogNoButton)}, - { "icn63Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)}, - { "icn64Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarHorizontalExtensionButton)}, - { "icn65Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogOkButton)}, - { "icn66Dummy", QApplication::style()->standardIcon(QStyle::SP_FileIcon)}, - { "icn67Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarVerticalExtensionButton)}, - { "icn68Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogResetButton)}, - { "icn70Dummy", QApplication::style()->standardIcon(QStyle::SP_FileLinkIcon)}, - { "icn71Dummy", QApplication::style()->standardIcon(QStyle::SP_TrashIcon)}, - { "icn72Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogSaveButton)}, - { "icn73Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPause)}, - { "icn74Dummy", QApplication::style()->standardIcon(QStyle::SP_VistaShield)}, - { "icn75Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogYesButton)}, - { "icn76Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPlay)}, - { "icn77Dummy", QApplication::style()->standardIcon(QStyle::SP_DirClosedIcon)}, - { "icn79Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekBackward)}, - { "icn80Dummy", QApplication::style()->standardIcon(QStyle::SP_DirHomeIcon)}, - { "icn81Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekForward)} - }; + { "icnFolder" , QApplication::style()->standardIcon(QStyle::SP_DirIcon) } + } + */ + static XQAppIconMap s_IconMap; + bool hasTypeIcon(const QString& key ) { - //if(s_IconMap.isEmpty()) - // s_IconMap.init(); + if(s_IconMap.isEmpty()) + s_IconMap.init(); return !key.isEmpty() && s_IconMap.contains(key); } @@ -160,84 +167,84 @@ namespace XQAppData /* { "icnFolder" , QApplication::style()->standardIcon(QStyle::SP_DirIcon) }, - { "icnFolder" , QApplication::style()->standardIcon(QStyle::SP_DirIcon)}, - { "icn02Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)}, - { "icn03Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)}, - { "icn04Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)}, - { "icn05Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)}, - { "icn06Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)}, - { "icn07Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)}, - { "icn08Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)}, - { "icn09Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)}, - { "icn10Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)}, - { "icn11Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowBack)}, - { "icn12Dummy", QApplication::style()->standardIcon(QStyle::SP_DirIcon)}, - { "icn13Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward)}, - { "icn14Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowDown)}, - { "icn15Dummy", QApplication::style()->standardIcon(QStyle::SP_DirLinkIcon)}, - { "icn16Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward)}, - { "icn17Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowForward)}, - { "icn18Dummy", QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon)}, - { "icn19Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaStop)}, - { "icn20Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowLeft)}, - { "icn21Dummy", QApplication::style()->standardIcon(QStyle::SP_DockWidgetCloseButton)}, - { "icn22Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolume)}, - { "icn23Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowRight)}, - { "icn24Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveCDIcon)}, - { "icn25Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolumeMuted)}, - { "icn26Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowUp)}, - { "icn27Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveDVDIcon)}, - { "icn28Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical)}, - { "icn29Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserReload)}, - { "icn30Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveFDIcon)}, - { "icn31Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation)}, - { "icn32Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserStop)}, - { "icn33Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveHDIcon)}, - { "icn34Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion)}, - { "icn35Dummy", QApplication::style()->standardIcon(QStyle::SP_CommandLink)}, - { "icn36Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveNetIcon)}, - { "icn37Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning)}, - { "icn38Dummy", QApplication::style()->standardIcon(QStyle::SP_ComputerIcon)}, - { "icn39Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack)}, - { "icn40Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarCloseButton)}, - { "icn41Dummy", QApplication::style()->standardIcon(QStyle::SP_CustomBase)}, - { "icn42Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView)}, - { "icn43Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarContextHelpButton)}, - { "icn44Dummy", QApplication::style()->standardIcon(QStyle::SP_DesktopIcon)}, - { "icn45Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView)}, - { "icn46Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMaxButton)}, - { "icn47Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogApplyButton)}, - { "icn48Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd)}, - { "icn49Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMenuButton)}, - { "icn50Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton)}, - { "icn51Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView)}, - { "icn52Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMinButton)}, - { "icn53Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCloseButton)}, - { "icn54Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView)}, - { "icn55Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarNormalButton)}, - { "icn56Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogDiscardButton)}, - { "icn57Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder)}, - { "icn58Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarShadeButton)}, - { "icn59Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogHelpButton)}, - { "icn60Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart)}, - { "icn61Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarUnshadeButton)}, - { "icn62Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogNoButton)}, - { "icn63Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent)}, - { "icn64Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarHorizontalExtensionButton)}, - { "icn65Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogOkButton)}, - { "icn66Dummy", QApplication::style()->standardIcon(QStyle::SP_FileIcon)}, - { "icn67Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarVerticalExtensionButton)}, - { "icn68Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogResetButton)}, - { "icn70Dummy", QApplication::style()->standardIcon(QStyle::SP_FileLinkIcon)}, - { "icn71Dummy", QApplication::style()->standardIcon(QStyle::SP_TrashIcon)}, - { "icn72Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogSaveButton)}, - { "icn73Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPause)}, - { "icn74Dummy", QApplication::style()->standardIcon(QStyle::SP_VistaShield)}, - { "icn75Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogYesButton)}, - { "icn76Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPlay)}, - { "icn77Dummy", QApplication::style()->standardIcon(QStyle::SP_DirClosedIcon)}, - { "icn79Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekBackward)}, - { "icn80Dummy", QApplication::style()->standardIcon(QStyle::SP_DirHomeIcon)}, + { "icnFolder" , QApplication::style()->standardIcon(QStyle::SP_DirIcon"); + { "icn02Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack"); + { "icn03Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView"); + { "icn04Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView"); + { "icn05Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd"); + { "icn06Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView"); + { "icn07Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView"); + { "icn08Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder"); + { "icn09Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart"); + { "icn10Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent"); + { "icn11Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowBack"); + { "icn12Dummy", QApplication::style()->standardIcon(QStyle::SP_DirIcon"); + { "icn13Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipBackward"); + { "icn14Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowDown"); + { "icn15Dummy", QApplication::style()->standardIcon(QStyle::SP_DirLinkIcon"); + { "icn16Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSkipForward"); + { "icn17Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowForward"); + { "icn18Dummy", QApplication::style()->standardIcon(QStyle::SP_DirOpenIcon"); + { "icn19Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaStop"); + { "icn20Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowLeft"); + { "icn21Dummy", QApplication::style()->standardIcon(QStyle::SP_DockWidgetCloseButton"); + { "icn22Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolume"); + { "icn23Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowRight"); + { "icn24Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveCDIcon"); + { "icn25Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaVolumeMuted"); + { "icn26Dummy", QApplication::style()->standardIcon(QStyle::SP_ArrowUp"); + { "icn27Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveDVDIcon"); + { "icn28Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical"); + { "icn29Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserReload"); + { "icn30Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveFDIcon"); + { "icn31Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation"); + { "icn32Dummy", QApplication::style()->standardIcon(QStyle::SP_BrowserStop"); + { "icn33Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveHDIcon"); + { "icn34Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxQuestion"); + { "icn35Dummy", QApplication::style()->standardIcon(QStyle::SP_CommandLink"); + { "icn36Dummy", QApplication::style()->standardIcon(QStyle::SP_DriveNetIcon"); + { "icn37Dummy", QApplication::style()->standardIcon(QStyle::SP_MessageBoxWarning"); + { "icn38Dummy", QApplication::style()->standardIcon(QStyle::SP_ComputerIcon"); + { "icn39Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogBack"); + { "icn40Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarCloseButton"); + { "icn41Dummy", QApplication::style()->standardIcon(QStyle::SP_CustomBase"); + { "icn42Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogContentsView"); + { "icn43Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarContextHelpButton"); + { "icn44Dummy", QApplication::style()->standardIcon(QStyle::SP_DesktopIcon"); + { "icn45Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogDetailedView"); + { "icn46Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMaxButton"); + { "icn47Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogApplyButton"); + { "icn48Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogEnd"); + { "icn49Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMenuButton"); + { "icn50Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCancelButton"); + { "icn51Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogInfoView"); + { "icn52Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarMinButton"); + { "icn53Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogCloseButton"); + { "icn54Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogListView"); + { "icn55Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarNormalButton"); + { "icn56Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogDiscardButton"); + { "icn57Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogNewFolder"); + { "icn58Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarShadeButton"); + { "icn59Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogHelpButton"); + { "icn60Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogStart"); + { "icn61Dummy", QApplication::style()->standardIcon(QStyle::SP_TitleBarUnshadeButton"); + { "icn62Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogNoButton"); + { "icn63Dummy", QApplication::style()->standardIcon(QStyle::SP_FileDialogToParent"); + { "icn64Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarHorizontalExtensionButton"); + { "icn65Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogOkButton"); + { "icn66Dummy", QApplication::style()->standardIcon(QStyle::SP_FileIcon"); + { "icn67Dummy", QApplication::style()->standardIcon(QStyle::SP_ToolBarVerticalExtensionButton"); + { "icn68Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogResetButton"); + { "icn70Dummy", QApplication::style()->standardIcon(QStyle::SP_FileLinkIcon"); + { "icn71Dummy", QApplication::style()->standardIcon(QStyle::SP_TrashIcon"); + { "icn72Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogSaveButton"); + { "icn73Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPause"); + { "icn74Dummy", QApplication::style()->standardIcon(QStyle::SP_VistaShield"); + { "icn75Dummy", QApplication::style()->standardIcon(QStyle::SP_DialogYesButton"); + { "icn76Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaPlay"); + { "icn77Dummy", QApplication::style()->standardIcon(QStyle::SP_DirClosedIcon"); + { "icn79Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekBackward"); + { "icn80Dummy", QApplication::style()->standardIcon(QStyle::SP_DirHomeIcon"); { "icn81Dummy", QApplication::style()->standardIcon(QStyle::SP_MediaSeekForward)} } */ diff --git a/src/application/xqmainmodel.cpp b/src/application/xqmainmodel.cpp index a3d96b6..d8378c0 100644 --- a/src/application/xqmainmodel.cpp +++ b/src/application/xqmainmodel.cpp @@ -39,7 +39,7 @@ XQMainModel::XQMainModel(QObject *parent ) void XQMainModel::initModel(const QString& modelName) { - // model rootnode finden -> + // model rootnode finden -> XQNodePtr modelSheet = _itemFactory.findModelSheet( modelName ); // throws // #1: über alle sections diff --git a/src/application/xqmainwindow.cpp b/src/application/xqmainwindow.cpp index 37f8297..73f56b7 100644 --- a/src/application/xqmainwindow.cpp +++ b/src/application/xqmainwindow.cpp @@ -85,11 +85,10 @@ void XQMainWindow::initMainWindow() // hand over left side navigation tree _mainModelView.setTreeTable(_mainTreeView); // #1. init the left side main tree view - //_mainModelView.initModel( c_MainModelName ); - _mainModelView.initModel( "ModelX" ); + _mainModelView.initModel( c_MainModelName ); // #2. load demo data - //loadDocument( c_DocumentFileName1 ); + loadDocument( c_DocumentFileName1 ); //loadDocument( c_DocumentFileName2 ); qDebug() << " --- all here: " << XQNode::s_Count; diff --git a/xml/modelsheets.xml b/xml/modelsheets.xml index 10aa97e..39d9351 100644 --- a/xml/modelsheets.xml +++ b/xml/modelsheets.xml @@ -7,7 +7,7 @@ --> - + @@ -23,10 +23,10 @@ DocumentTreeModel --> - + + - +
@@ -73,7 +67,8 @@
-
+
+