mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
QML UI: add downloaded dives to dive list
This already takes into account which of those dives were selected. Right now all we have is select all or none - this needs actual support in the UI, but once that's there, it will just work (famous last words). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
84b1b63d46
commit
3f0d21046e
5 changed files with 31 additions and 5 deletions
|
@ -123,11 +123,11 @@ Kirigami.Page {
|
||||||
text: qsTr("Accept")
|
text: qsTr("Accept")
|
||||||
enabled: false
|
enabled: false
|
||||||
onClicked: {
|
onClicked: {
|
||||||
manager.appendTextToLog("Save downloaded dives")
|
manager.appendTextToLog("Save downloaded dives that were selected")
|
||||||
for (var i = 0; i < importModel.rowCount(); i++) {
|
importModel.recordDives()
|
||||||
// figure out which ones are selected
|
manager.saveChangesLocal()
|
||||||
// save the selected dive to the diveTable
|
diveModel.clear()
|
||||||
}
|
diveModel.addAllDives()
|
||||||
stackView.pop();
|
stackView.pop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,6 +143,17 @@ void DiveImportedModel::repopulate()
|
||||||
setImportedDivesIndexes(0, diveTable->nr-1);
|
setImportedDivesIndexes(0, diveTable->nr-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DiveImportedModel::recordDives()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < rowCount(); i++) {
|
||||||
|
if (diveTable->dives[i] && checkStates[i]) {
|
||||||
|
record_dive(diveTable->dives[i]);
|
||||||
|
diveTable->dives[i] = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diveTable->nr = 0;
|
||||||
|
}
|
||||||
|
|
||||||
QHash<int, QByteArray> DiveImportedModel::roleNames() const {
|
QHash<int, QByteArray> DiveImportedModel::roleNames() const {
|
||||||
static QHash<int, QByteArray> roles = {
|
static QHash<int, QByteArray> roles = {
|
||||||
{ DateTime, "datetime"},
|
{ DateTime, "datetime"},
|
||||||
|
|
|
@ -21,6 +21,7 @@ public:
|
||||||
void clearTable();
|
void clearTable();
|
||||||
QHash<int, QByteArray> roleNames() const;
|
QHash<int, QByteArray> roleNames() const;
|
||||||
Q_INVOKABLE void repopulate();
|
Q_INVOKABLE void repopulate();
|
||||||
|
Q_INVOKABLE void recordDives();
|
||||||
public
|
public
|
||||||
slots:
|
slots:
|
||||||
void changeSelected(QModelIndex clickedIndex);
|
void changeSelected(QModelIndex clickedIndex);
|
||||||
|
|
|
@ -25,6 +25,18 @@ int DiveListSortModel::getIdxForId(int id)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DiveListSortModel::clear()
|
||||||
|
{
|
||||||
|
DiveListModel *mySourceModel = qobject_cast<DiveListModel *>(sourceModel());
|
||||||
|
mySourceModel->clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DiveListSortModel::addAllDives()
|
||||||
|
{
|
||||||
|
DiveListModel *mySourceModel = qobject_cast<DiveListModel *>(sourceModel());
|
||||||
|
mySourceModel->addAllDives();
|
||||||
|
}
|
||||||
|
|
||||||
DiveListModel *DiveListModel::m_instance = NULL;
|
DiveListModel *DiveListModel::m_instance = NULL;
|
||||||
|
|
||||||
DiveListModel::DiveListModel(QObject *parent) : QAbstractListModel(parent)
|
DiveListModel::DiveListModel(QObject *parent) : QAbstractListModel(parent)
|
||||||
|
|
|
@ -14,6 +14,8 @@ class DiveListSortModel : public QSortFilterProxyModel
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
DiveListSortModel(QObject *parent = 0);
|
DiveListSortModel(QObject *parent = 0);
|
||||||
|
Q_INVOKABLE void addAllDives();
|
||||||
|
Q_INVOKABLE void clear();
|
||||||
public slots:
|
public slots:
|
||||||
int getDiveId(int idx);
|
int getDiveId(int idx);
|
||||||
int getIdxForId(int id);
|
int getIdxForId(int id);
|
||||||
|
|
Loading…
Add table
Reference in a new issue