sections in treeview.

This commit is contained in:
2025-08-18 21:09:57 +02:00
parent 429c939cdf
commit c870ef8801
5 changed files with 31 additions and 18 deletions

View File

@@ -63,11 +63,11 @@ XQItem* XQMainModel::addProjectItem( XQNodePtr contentNode )
_treeTable->expand( index ); _treeTable->expand( index );
// ... und markieren // ... und markieren
_treeTable->setCurrentIndex( index ); _treeTable->setCurrentIndex( index );
// den gesamten projekt knoten speichern, warum? // quellknoten auch speichern
//newItem->setContentNode(contentNode); newItem->setContentNode( contentNode );
// erzeuger sheet node speichern // erzeuger sheet node speichern
newItem->setSheetNode( sheetNode ); newItem->setSheetNode( sheetNode );
emit itemCreated( newItem ); //emit itemCreated( newItem );
return newItem; return newItem;
@@ -78,6 +78,17 @@ XQItem* XQMainModel::addProjectItem( XQNodePtr contentNode )
throw XQException( "addProjectItem: main model should not be empty!" ); throw XQException( "addProjectItem: main model should not be empty!" );
} }
void XQMainModel::addSectionItem( const XQModelSection& section, XQItem* projectItem )
{
//XQNodePtr sheetNode = projectParent->sheetNode();
//XQItem* newItem = _itemFactory.makeItem(sheetNode, contentPtr );
XQNodePtr sheetNode = projectItem->sheetNode()->find_child_by_tag_name("CurrentSection");
XQItem* newItem = _itemFactory.makeItem(sheetNode, &section.contentType() );
projectItem->appendRow( newItem );
_treeTable->expand( projectItem->index() );
}
/* /*
XQItem* XQMainModel::addSectionItem( XQItem* projectItem ) XQItem* XQMainModel::addSectionItem( XQItem* projectItem )
{ {

View File

@@ -33,8 +33,7 @@ public:
virtual ~XQMainModel() = default; virtual ~XQMainModel() = default;
XQItem* addProjectItem( XQNodePtr contentNode ); XQItem* addProjectItem( XQNodePtr contentNode );
void addSectionItem( const XQModelSection& section, XQItem* projectItem );
public slots:
protected: protected:

View File

@@ -124,7 +124,7 @@ void XQMainWindow::initMainWindow()
// #2. load demo data // #2. load demo data
loadDocument( c_DocumentFileName1 ); loadDocument( c_DocumentFileName1 );
//loadDocument( c_DocumentFileName2 ); loadDocument( c_DocumentFileName2 );
qDebug() << " --- all here: " << XQNode::s_Count; qDebug() << " --- all here: " << XQNode::s_Count;
@@ -259,12 +259,17 @@ void XQMainWindow::onTreeItemClicked(const QModelIndex& index )
qDebug() << " --- mainWindow onTreeItemClicked:" << entry.text(); qDebug() << " --- mainWindow onTreeItemClicked:" << entry.text();
return;
//_mainTreeView->selectionModel()->select(index, QItemSelectionModel::Select); _mainTreeView->selectionModel()->select(index, QItemSelectionModel::Select);
//entry->setBackground( QBrush( Qt::green ) ); entry.setBackground( QBrush( Qt::green ) );
QString key = entry.attribute(c_ProjectID); QString key = entry.attribute(c_ProjectID);
if( _documentStore.contains(key) ) qDebug() << " --- FIRZ: key: " << key;
bool isThere = _documentStore.contains(key);
if( isThere)
_tabWidget->setCurrentWidget( _documentStore[key].modelView->treeTable() ); _tabWidget->setCurrentWidget( _documentStore[key].modelView->treeTable() );
} }
@@ -283,14 +288,13 @@ void XQMainWindow::onSectionCreated( const XQModelSection& section )
{ {
if( _currentProjectItem ) if( _currentProjectItem )
{ {
; _mainModelView.addSectionItem( section, _currentProjectItem );
} }
qDebug() << " --- XXX section created: " << section.contentType() << ":" << section.contentType();
} }
void XQMainWindow::onSectionToggled( const XQModelSection& section ) void XQMainWindow::onSectionToggled( const XQModelSection& section )
{ {
qDebug() << " --- XXX section toggled: " << section.contentType() << ":" << section.sheetRootNode()->to_string(); //qDebug() << " --- XXX section toggled: " << section.contentType() << ":" << section.sheetRootNode()->to_string();
} }
//! liest eine XML datei namens 'fileName' //! liest eine XML datei namens 'fileName'

View File

@@ -270,7 +270,7 @@ XQItem* XQItemFactory::makeItem( const XQNodePtr& sheetNode, const XQNodePtr& co
// der content wird indirect über den tag-name des sheetnode geholt // der content wird indirect über den tag-name des sheetnode geholt
const QString* contentPtr{}; const QString* contentPtr{};
// das ist Unterschied zum normalen Item: Der Titel kommt aus der Modelbeschreibung // das ist Unterschied vom HeaderItem zum normalen Item: Der Titel kommt aus der Modelbeschreibung
if(!contentNode) if(!contentNode)
contentPtr = sheetNode->attribute_ptr(c_Caption); contentPtr = sheetNode->attribute_ptr(c_Caption);
else else
@@ -293,7 +293,6 @@ XQItem* XQItemFactory::makeItem( const XQNodePtr& sheetNode, const QString* cont
// __fixme! // __fixme!
if( newItem->isCheckable() ) if( newItem->isCheckable() )
{ {
//qDebug() << " --- yooo: " << newItem->toolTip();
newItem->setCheckState( Qt::Checked ); newItem->setCheckState( Qt::Checked );
} }

View File

@@ -9,13 +9,13 @@
<ItemTypes> <ItemTypes>
<TreeParentType RenderStyle="PlainStyle" ItemFlags="IsEnabled|IsDropEnabled" Icon="DirIcon" /> <TreeParentType RenderStyle="PlainStyle" ItemFlags="IsEnabled|IsDropEnabled" Icon="DirIcon" />
<TreeChildType RenderStyle="PlainStyle" ItemFlags="IsEnabled" Icon="DesktopIcon"/> <TreeChildType RenderStyle="PlainStyle" ItemFlags="IsEnabled" Icon="DesktopIcon"/>
<TreeSectionType RenderStyle="PlainStyle" ItemFlags="IsEnabled" Icon="DirIcon"/> <TreeSectionType RenderStyle="PlainStyle" ItemFlags="IsUserCheckable|IsEnabled" Icon="DirIcon"/>
<HeaderType RenderStyle="HeaderStyle" ItemFlags="IsUserCheckable|IsEnabled" Icon="DirIcon"/> <HeaderType RenderStyle="HeaderStyle" ItemFlags="IsEnabled"/>
<HiddenType RenderStyle="HiddenStyle"/> <HiddenType RenderStyle="HiddenStyle"/>
<StaticType RenderStyle="PlainStyle"/> <StaticType RenderStyle="PlainStyle"/>
<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"/>
<CheckableType RenderStyle="FormattedStyle" ItemFlags="IsUserCheckable|IsEnabled|IsEditable|IsSelectable" UnitType="###"/> <CheckableType RenderStyle="FormattedStyle" ItemFlags="IsEnabled|IsEditable|IsSelectable" UnitType="###"/>
<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"/>