From 4476741ace6b95dc0705dfe551d674f9bbb9c58a Mon Sep 17 00:00:00 2001 From: tobtoht Date: Sat, 19 Dec 2020 00:13:33 +0100 Subject: [PATCH] Wizard: Sort wallets by modified date --- src/utils/keysfiles.cpp | 4 +++- src/wizard/openwallet.cpp | 22 +++++++++++++++++++--- src/wizard/openwallet.h | 2 ++ src/wizard/openwallet.ui | 7 +++++++ 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/utils/keysfiles.cpp b/src/utils/keysfiles.cpp index 72171ac..4d44372 100644 --- a/src/utils/keysfiles.cpp +++ b/src/utils/keysfiles.cpp @@ -133,7 +133,7 @@ int WalletKeysFilesModel::rowCount(const QModelIndex & parent) const { } int WalletKeysFilesModel::columnCount(const QModelIndex &) const { - return 3; + return 4; } QVariant WalletKeysFilesModel::data(const QModelIndex &index, int role) const { @@ -162,6 +162,8 @@ QVariant WalletKeysFilesModel::data(const QModelIndex &index, int role) const { #endif return fp; } + case ModelColumns::Modified: + return walletKeyFile.modified(); default: break; } diff --git a/src/wizard/openwallet.cpp b/src/wizard/openwallet.cpp index 7092917..6ecab7a 100644 --- a/src/wizard/openwallet.cpp +++ b/src/wizard/openwallet.cpp @@ -55,11 +55,27 @@ OpenWalletPage::OpenWalletPage(AppContext *ctx, QWidget *parent) : ui->walletTable->setModel(m_keysProxy); ui->walletTable->hideColumn(WalletKeysFilesModel::NetworkType); - ui->walletTable->header()->setSectionResizeMode(QHeaderView::ResizeToContents); - ui->walletTable->header()->setSectionResizeMode(WalletKeysFilesModel::Path, QHeaderView::Stretch); + ui->walletTable->hideColumn(WalletKeysFilesModel::Path); + ui->walletTable->hideColumn(WalletKeysFilesModel::Modified); + ui->walletTable->header()->setSectionResizeMode(WalletKeysFilesModel::FileName, QHeaderView::Stretch); ui->walletTable->setSortingEnabled(true); - ui->walletTable->sortByColumn(WalletKeysFilesModel::Modified, Qt::AscendingOrder); // @TODO: this does not work + ui->walletTable->sortByColumn(WalletKeysFilesModel::Modified, Qt::DescendingOrder); ui->walletTable->show(); + + connect(ui->walletTable->selectionModel(), &QItemSelectionModel::currentRowChanged, [this](QModelIndex current, QModelIndex prev){ + this->updatePath(); + }); +} + +void OpenWalletPage::updatePath() { + QModelIndex index = ui->walletTable->currentIndex(); + if (!index.isValid()) { + ui->labelPath->clear(); + return; + } + + QString path = index.model()->data(index.siblingAtColumn(WalletKeysFilesModel::Path), Qt::DisplayRole).toString(); + ui->labelPath->setText(path); } int OpenWalletPage::nextId() const { diff --git a/src/wizard/openwallet.h b/src/wizard/openwallet.h index b9f1929..558dcf6 100644 --- a/src/wizard/openwallet.h +++ b/src/wizard/openwallet.h @@ -28,6 +28,8 @@ signals: void openWallet(QString path); private: + void updatePath(); + AppContext *m_ctx; WalletKeysFilesModel *walletKeysFilesModel; WalletKeysFilesProxyModel *m_keysProxy; diff --git a/src/wizard/openwallet.ui b/src/wizard/openwallet.ui index 1010470..c0e3429 100644 --- a/src/wizard/openwallet.ui +++ b/src/wizard/openwallet.ui @@ -55,6 +55,13 @@ + + + + path + + +