faking success.

This commit is contained in:
2025-08-09 21:33:03 +02:00
parent 4a08e71115
commit c973712352
7 changed files with 71 additions and 36 deletions

View File

@@ -59,9 +59,12 @@ XQItem* XQMainModel::createTreeEntry( XQNodePtr contentNode )
{ {
for(const auto& section : _sections ) for(const auto& section : _sections )
{ {
qDebug() << " --- wtf1: " << contentNode->to_string();
qDebug() << " --- wtf2: " << section.sheetRootNode->to_string();
if( contentNode->attribute("State") == section.sheetRootNode->attribute("State") ) if( contentNode->attribute("State") == section.sheetRootNode->attribute("State") )
{ {
XQItem* newTreeentry = _itemFactory.makeContentItem( contentNode, section.sheetRootNode ); XQItem* newTreeentry = _itemFactory.makeTreeChildItem( contentNode, section.sheetRootNode );
section.headerItem().appendRow( newTreeentry ); section.headerItem().appendRow( newTreeentry );
_treeTable->expand( section.modelIndex ); _treeTable->expand( section.modelIndex );
// ?? // ??

View File

@@ -23,7 +23,7 @@
#include <xqnodewriter.h> #include <xqnodewriter.h>
//! firz //! konstruktor.
XQMainWindow::XQMainWindow( QWidget* parent ) XQMainWindow::XQMainWindow( QWidget* parent )
: QMainWindow(parent) : QMainWindow(parent)
@@ -34,7 +34,7 @@ XQMainWindow::XQMainWindow( QWidget* parent )
} }
//! firz //! actions & document struktur einrichten.
void XQMainWindow::initMainWindow() void XQMainWindow::initMainWindow()
{ {
@@ -67,6 +67,7 @@ void XQMainWindow::initMainWindow()
connect( _mainTreeView, SIGNAL(clicked(QModelIndex)), this, SLOT(onTreeItemClicked(QModelIndex)) ); connect( _mainTreeView, SIGNAL(clicked(QModelIndex)), this, SLOT(onTreeItemClicked(QModelIndex)) );
connect( _tabWidget, SIGNAL(tabBarClicked(int)), this, SLOT(onTabClicked(int)) ); connect( _tabWidget, SIGNAL(tabBarClicked(int)), this, SLOT(onTabClicked(int)) );
connect( &_mainModelView, &XQViewModel::xqItemCreated, this, [=, this](XQItem* item) connect( &_mainModelView, &XQViewModel::xqItemCreated, this, [=, this](XQItem* item)
{ {
// when a new main tree item has been created ... // when a new main tree item has been created ...
@@ -102,7 +103,7 @@ void XQMainWindow::initMainWindow()
} }
//! firz //! slot für zentrales undo
void XQMainWindow::onUndo() void XQMainWindow::onUndo()
{ {
@@ -113,14 +114,13 @@ void XQMainWindow::onUndo()
} }
//! //! slot für zentrales redo
void XQMainWindow::onRedo() void XQMainWindow::onRedo()
{ {
qDebug() << " --- redo Pressed"; qDebug() << " --- redo Pressed";
if(_undoStack.canRedo()) if(_undoStack.canRedo())
_undoStack.redo(); _undoStack.redo();
} }
@@ -214,8 +214,9 @@ void XQMainWindow::onAbout()
} }
//! firz //! wenn ein item im navigations-baum geklickt wird, soll die document
// when item in the left tree is clicked, switch view on the right side //! view rechts angepasst werden.
void XQMainWindow::onTreeItemClicked(const QModelIndex& index ) void XQMainWindow::onTreeItemClicked(const QModelIndex& index )
{ {
@@ -234,8 +235,8 @@ void XQMainWindow::onTreeItemClicked(const QModelIndex& index )
} }
//! firz //! beim click auf ein tab im linken fenster wird der navigationsbaum angepasst.
// when item in the left tree is clicked, switch view on the right side
void XQMainWindow::onTabClicked( int index ) void XQMainWindow::onTabClicked( int index )
{ {
const QString& key = _documentStore[index].treeItem->attribute( c_ProjectID ); const QString& key = _documentStore[index].treeItem->attribute( c_ProjectID );
@@ -293,8 +294,10 @@ void XQMainWindow::loadDocument( const QString& fileName )
// read the model data // read the model data
childModel->setContent( contentRoot->first_child() ); childModel->setContent( contentRoot->first_child() );
// create new entry in the left side main tree view // create new entry in the left side main tree view
XQItem* newEntry = _mainModelView.createTreeEntry( contentRoot );
XQItem* newEntry = _mainModelView.createTreeEntry( contentRoot );
_mainTreeView->setCurrentIndex( newEntry->index() ); _mainTreeView->setCurrentIndex( newEntry->index() );
_documentStore.addDocument( fileName, pTitle, newEntry, childModel ); _documentStore.addDocument( fileName, pTitle, newEntry, childModel );

View File

@@ -115,20 +115,6 @@ XQNodePtr XQItemFactory::findModelSheet( const QString& modelName ) const
} }
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() );
XQItem* newItem = new XQItem( itemType, contentPtr );
return newItem;
}
XQItem* XQItemFactory::makeHeaderItem( const XQNodePtr& sheetEntry ) XQItem* XQItemFactory::makeHeaderItem( const XQNodePtr& sheetEntry )
{ {
@@ -140,15 +126,42 @@ XQItem* XQItemFactory::makeHeaderItem( const XQNodePtr& sheetEntry )
// den itemtype des neuen items rausfinden // den itemtype des neuen items rausfinden
QString typeKey = sheetEntry->attribute("HeaderItemType"); QString typeKey = sheetEntry->attribute("HeaderItemType");
XQItemType* itemType = findItemTypeTemplate(typeKey); // throws //XQItemType* itemType = makeItemType(sheetEntry); // throws
XQItemType* itemType = findItemTypeTemplate(typeKey);
// das ist Unterschied zum normalen Item: Der Titel kommt aus der Modelbeschreibung // das ist Unterschied zum normalen Item: Der Titel kommt aus der Modelbeschreibung
const QString* contentPtr = sheetEntry->attribute_ptr("HeaderCaption"); const QString* contentPtr = sheetEntry->attribute_ptr("HeaderCaption");
XQItem* newHeaderItem = new XQItem( itemType, contentPtr ); return new XQItem( itemType, contentPtr );
return newHeaderItem;
} }
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 )
{
// 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( "ProjectName" );
XQItem* newItem = new XQItem( itemType, contentPtr );
return newItem;
}
void XQItemFactory::setItemDataFromString( XQItem& item, const QString& roleKey, const QString& source ) const void XQItemFactory::setItemDataFromString( XQItem& item, const QString& roleKey, const QString& source ) const
{ {

View File

@@ -34,6 +34,7 @@ public:
XQItem* makeHeaderItem(const XQNodePtr& typeSheetNode ); XQItem* makeHeaderItem(const XQNodePtr& typeSheetNode );
XQItem* makeContentItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry ); XQItem* makeContentItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry );
XQItem* makeTreeChildItem( const XQNodePtr& contentNode, const XQNodePtr& sheetEntry );
virtual XQItemList makeHeaderRow( const XQNodePtr& sheetNode ); virtual XQItemList makeHeaderRow( const XQNodePtr& sheetNode );
virtual XQItemList makeContentRow( const XQNodePtr& contentNode, const XQNodePtr& sheetNode ); virtual XQItemList makeContentRow( const XQNodePtr& contentNode, const XQNodePtr& sheetNode );

View File

@@ -224,6 +224,7 @@ namespace znode
return nullptr; return nullptr;
} }
//! hängt einen knoten an meine kinderliste an.
int add_child( const zshared_node& node ) int add_child( const zshared_node& node )
{ {
_children.push_back( node ); _children.push_back( node );

View File

@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<Project ProjectID="HA01" FriendlyName="@ProjectName" ProjectName="Wiebelbach West" Established="2006" WattPeak="84000" State="runnning"> <Project ProjectID="HA01" FriendlyName="@ProjectName" ProjectName="Wiebelbach West" Established="2006" WattPeak="84000" State="runnning" LastFileName="modelData1.xtr">
<Components> <Components>
<Panel PanelID="#1 JA 01" FriendlyName="@PanelName" PanelName="JA 01 Solar T62B" Manufacturer="JA Solar 1 XX" WattPeak="620" Height="2,70" Width="1,10" Weight="12" MaxVolt="67" MaxAmpere="11"> <Panel PanelID="#1 JA 01" FriendlyName="@PanelName" PanelName="JA 01 Solar T62B" Manufacturer="JA Solar 1 XX" WattPeak="620" Height="2,70" Width="1,10" Weight="12" MaxVolt="67" MaxAmpere="11">

View File

@@ -7,16 +7,16 @@
--> -->
<ItemTypes> <ItemTypes>
<TreeParentType RenderStyle="PlainStyle" ItemFlags="IsEnabled|IsDropEnabled" Icon="folder-new" />
<TreeChildType RenderStyle="PlainStyle" ItemFlags="IsEnabled|IsDragEnabled|IsSelectable|IsDropEnabled"/>
<HeaderType RenderStyle="HeaderStyle" ItemFlags="IsEnabled" Icon="battery"/>
<HiddenType RenderStyle="HiddenStyle"/> <HiddenType RenderStyle="HiddenStyle"/>
<StaticType RenderStyle="PlainStyle"/> <StaticType RenderStyle="PlainStyle"/>
<TreeChildType RenderStyle="PlainStyle" ItemFlags="IsEnabled|IsDragEnabled|IsSelectable|IsDropEnabled"/>
<PlainType RenderStyle="PlainStyle" ItemFlags="IsEnabled|IsEditable|IsSelectable"/> <PlainType RenderStyle="PlainStyle" ItemFlags="IsEnabled|IsEditable|IsSelectable"/>
<ValueType RenderStyle="FormattedStyle" ItemFlags="IsEnabled|IsEditable|IsSelectable" UnitType="Coulomb"/> <ValueType RenderStyle="FormattedStyle" ItemFlags="IsEnabled|IsEditable|IsSelectable" UnitType="Coulomb"/>
<PercentageType RenderStyle="ProgressBarStyle" ItemFlags="IsEnabled|IsSelectable"/> <PercentageType RenderStyle="ProgressBarStyle" ItemFlags="IsEnabled|IsSelectable"/>
<ChoiceType RenderStyle="ComboBoxStyle" ItemFlags="IsEnabled|IsSelectable|IsEditable" FixedChoices="la|le|lo|lu"/> <ChoiceType RenderStyle="ComboBoxStyle" ItemFlags="IsEnabled|IsSelectable|IsEditable" FixedChoices="la|le|lo|lu"/>
<IntValueType RenderStyle="SpinBoxStyle" ItemFlags="IsEnabled|IsSelectable"/> <IntValueType RenderStyle="SpinBoxStyle" ItemFlags="IsEnabled|IsSelectable"/>
<TreeParentType RenderStyle="PlainStyle" ItemFlags="IsEnabled|IsDropEnabled" Icon="battery" />
<HeaderType RenderStyle="HeaderStyle" ItemFlags="IsEnabled" Icon="battery"/>
</ItemTypes> </ItemTypes>
<!-- <!--
@@ -25,11 +25,25 @@
--> -->
<DocumentTreeModel> <DocumentTreeModel>
<ActiveProjects HeaderItemType="TreeParentType" HeaderCaption="Active Projects" ItemType="ValueType" ItemFlags="IsEnabled|IsDropEnabled" RenderStyle="HeaderStyle" State="runnning"/> <ActiveProjects ItemType="PlainType" HeaderItemType="TreeParentType" HeaderCaption="Active Projects" State="runnning">
<PlannedProjects HeaderItemType="TreeParentType" HeaderCaption="Planned Projects" ItemType="ValueType" ItemFlags="IsEnabled|IsDropEnabled" RenderStyle="HeaderStyle" State="planned"/> <Project ItemType="farz" HeaderItemType="TreeChildType" Icon="list-add"/>
<FinishedProjectss HeaderItemType="TreeParentType" HeaderCaption="Finished Projects" ItemType="ValueType" ItemFlags="IsEnabled|IsDropEnabled" RenderStyle="HeaderStyle" State="finished"/> </ActiveProjects>
<PlannedProjects HeaderItemType="TreeParentType" HeaderCaption="Planned Projects" State="planned">
<Project ItemType="TreeChildType" Icon="list-add"/>
</PlannedProjects>
<FinishedProjects HeaderItemType="TreeParentType" HeaderCaption="Finished Projects" State="finished">
<Project ItemType="TreeChildType" Icon="list-remove"/>
</FinishedProjects>
</DocumentTreeModel> </DocumentTreeModel>
<!--
<DocumentTreeModelX>
<ActiveProjects ItemType="TreeParentType" HeaderCaption="Active Projects" ItemType="ValueType" State="runnning"/>
<PlannedProjects HeaderItemType="TreeParentType" HeaderCaption="Planned Projects" ItemType="ValueType" State="planned"/>
<FinishedProjects HeaderItemType="TreeParentType" HeaderCaption="Finished Projects" ItemType="ValueType" State="finished"/>
</DocumenTreeModelX>
-->
<!-- <!--
DocumentDetailsModel: DocumentDetailsModel:
--> -->