Fixed toggleSection

This commit is contained in:
2025-09-06 11:08:07 +02:00
parent 3887748c1a
commit a9dacca684
6 changed files with 22 additions and 17 deletions

View File

@@ -320,7 +320,7 @@ void XQMainWindow::onSectionCreated( 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();
}
void XQMainWindow::setChildTabByName( const QString& key )

View File

@@ -172,9 +172,9 @@ int XQSectionManager::lastRow(const XQModelSection& section ) const
{
// last section? return last row of model
if (index == _sections.size() - 1)
return section.startIndex().model()->rowCount() - 1;
return section.startIndex().model()->rowCount();// - 1;
// return row above the row of the next section -> last row of given section
return _sections.at(index+1).firstRow() - 1;
return _sections.at(index+1).firstRow();// - 1;
}
return -1;
}

View File

@@ -152,22 +152,22 @@ void XQViewModel::initModel(const QString& modelName)
//! Wrzeugt dann eine section aus einer frisch erzeugten itemlist. Der erste modelindex
//! der liste und der root knoten der model-beschreibung werden gespeichert.
void XQViewModel::addSection(const XQItemList& list, const XQNodePtr& sectionNode )
void XQViewModel::addSection(const XQItemList& list, const XQNodePtr& sheetNode )
{
// 1. die liste darf nicht leer sein
Q_ASSERT(!list.isEmpty());
// 2. sectionNode muss da sein
Q_ASSERT(sectionNode);
// 2. sheetNode muss da sein
Q_ASSERT(sheetNode);
// 3. 'ContenType' muss vorhanden sein
if( !sectionNode->has_attribute( c_ContentType) )
if( !sheetNode->has_attribute( c_ContentType) )
throw XQException( "section list: Section node needs attribute 'ContentType'!");
// 5. das erzeugt dann auch valide indices
appendRow(list);
const QString &sectionKey = sectionNode->attribute(c_ContentType);
const QString &sectionKey = sheetNode->attribute(c_ContentType);
// 6. jetzt können wir auch die sction erzeugen
const XQModelSection& section = _sections.createSection( sectionKey, list[0]->index(), sectionNode );
const XQModelSection& section = _sections.createSection( sectionKey, list[0]->index(), sheetNode );
// ... und es der welt mitteilen.
emit sectionCreated( section );
@@ -193,10 +193,11 @@ void XQViewModel::toggleSection( const XQModelSection& section )
XQSectionRange pos = _sections.sectionRange(section);
//int fstRow = _sections.firstRow(index);
//int lstRow = _sections.lastRow(index);
//_treeTable->toggleRowsHidden(fstRow, lstRow);
_treeTable->toggleRowsHidden(pos.firstRow, pos.lastRow );
qDebug() << " --- toggleSection: " << section.contentType();
// hier nicht!?
//emit sectionToggled(section);
emit sectionToggled(section);
}
}
@@ -441,7 +442,7 @@ void XQViewModel::cmdDelete( const XQCommand& command )
// ... holen das erste item, das auch den content node enthält
const XQNodeBackup& entry = *it;
XQItem& firstItem = xqFirstItem( (*it).itemPos );
qDebug() << " --- Cut: " << firstItem.text() << " " << firstItem.row();
qDebug() << " --- delete: " << firstItem.text() << " " << firstItem.row();
// jetzt löschen
entry.contentNode->unlink_self();
removeRow(entry.itemPos );
@@ -452,7 +453,10 @@ void XQViewModel::cmdDelete( const XQCommand& command )
void XQViewModel::cmdDeleteUndo( const XQCommand& command )
{
for (const auto& entry : command)
{
qDebug() << " --- delete UNDo: " << entry.contentNode->to_string();
}
}

View File

@@ -2,6 +2,7 @@ QT += core gui widgets quick quickwidgets
# widgets-private
CONFIG += c++20 qmltypes
CONFIG -= qml_debug
QML_IMPORT_NAME = org.sourceworx.qmlcomponents
QML_IMPORT_MAJOR_VERSION = 1

View File

@@ -4,9 +4,9 @@
<Project ProjectID="HA02" FriendlyName="@ProjectName" ProjectName="Gerbrunn Ost" Established="2006" WattPeak="9840" ContentType="planned">
<Components>
<Panel PanelID="Jingli 01" FriendlyName="@PanelName" PanelName="Jingli 01 Solar T62B" Manufacturer="Jingli Solar" WattPeak="620" Height="2,70" Width="1,10" Weight="12" MaxVolt="67" MaxAmpere="11">
<AdditionalData DataItem="Image" DataValue="image,png"/>
<AdditionalData DataItem="Manual" DataValue="manual,docx"/>
<AdditionalData DataItem="Certificate" DataValue="certificate,pdf"/>
<AdditionalData DataItem="Image" DataValue="image.png"/>
<AdditionalData DataItem="Manual" DataValue="manual.docx"/>
<AdditionalData DataItem="Certificate" DataValue="certificate.pdf"/>
</Panel>
<Panel PanelID="Jingli 02" FriendlyName="@PanelName" PanelName="Jingli 02 Solar X58C" Manufacturer="Jingli Solar" WattPeak="440" Height="1,70" Width="1,10" Weight="12" MaxVolt="42" MaxAmpere="11"/>
<Panel PanelID="Jingli 03" FriendlyName="@PanelName" PanelName="Jingli 03 Solar T62B" Manufacturer="Jingli Solar" WattPeak="620" Height="2,70" Width="1,10" Weight="12" MaxVolt="67" MaxAmpere="11"/>

View File

@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<Project ProjectID="HA03" FriendlyName="@ProjectName" ProjectName="Neubrunn Süd" Established="2006" WattPeak="9840" ContentType="runnning">
<Project ProjectID="HA03" FriendlyName="@ProjectName" ProjectName="Tauberbischoffsheim SÜD" Established="2006" WattPeak="9840" ContentType="runnning">
<Components>
<Panel PanelID="AIKO 01" FriendlyName="@PanelName" PanelName="AIKO 01 Solar T62B" Manufacturer="AIKO Solar" WattPeak="620" Height="2,70" Width="1,10" Weight="12" MaxVolt="67" MaxAmpere="11">
<AdditionalData DataItem="Image" DataValue="image.png"/>