mobile/summary: add section headers

Add section headers to the dive summaries on mobile by adding
a section-property. Of course, this will not work on desktop.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Berthold Stoeger 2020-02-08 12:22:52 +01:00 committed by Dirk Hohndel
parent 1809dbd00a
commit a93c303b8b
3 changed files with 28 additions and 1 deletions

View file

@ -123,6 +123,7 @@ Kirigami.ScrollablePage {
id: headerLabel
verticalAlignment: Qt.AlignVCenter
colorBackground: parent.color
leftPadding: Kirigami.Units.largeSpacing
text: header !== undefined ? header : ""
font.bold: true
}
@ -150,6 +151,20 @@ Kirigami.ScrollablePage {
}
}
Component {
id: sectionDelegate
Rectangle {
width: headerColumnWidth * 4 - Kirigami.Units.gridUnit * 2
height: headerLabel.height + Kirigami.Units.largeSpacing
TemplateLabel {
id: headerLabel
verticalAlignment: Qt.AlignVCenter
colorBackground: parent.color
text: section
font.bold: true
}
}
}
ListView {
id: resultsTable
model: summaryModel
@ -157,6 +172,8 @@ Kirigami.ScrollablePage {
width: summary.width
height: summaryModel.rowCount() * 2 * Kirigami.Units.gridUnit
delegate: rowDelegate
section.property: "section"
section.delegate: sectionDelegate
Component.onCompleted: {
manager.appendTextToLog("SUMMARY: width: " + width + " height: " + height + " rows: " + model.rowCount())
}

View file

@ -20,7 +20,8 @@ QHash<int, QByteArray> DiveSummaryModel::roleNames() const
{
return { { HEADER_ROLE, "header" },
{ COLUMN0_ROLE, "col0" },
{ COLUMN1_ROLE, "col1" } };
{ COLUMN1_ROLE, "col1" },
{ SECTION_ROLE, "section" } };
}
QVariant DiveSummaryModel::dataDisplay(int row, int col) const
@ -61,6 +62,14 @@ QVariant DiveSummaryModel::data(const QModelIndex &index, int role) const
return dataDisplay(row, 0);
case COLUMN1_ROLE:
return dataDisplay(row, 1);
case SECTION_ROLE:
switch (row) {
case DIVES ... PLANS: return tr("Number of dives");
case TIME ... TIME_AVG: return tr("Time");
case DEPTH_MAX ... DEPTH_AVG: return tr("Depth");
case SAC_MIN ... SAC_AVG: return tr("SAC");
default: return QVariant();
}
}
// The unsupported case

View file

@ -32,6 +32,7 @@ public:
HEADER_ROLE = Qt::UserRole + 1,
COLUMN0_ROLE,
COLUMN1_ROLE,
SECTION_ROLE,
};
struct Result {