mirror of
https://github.com/feather-wallet/feather.git
synced 2024-12-23 03:59:29 +00:00
Merge pull request 'Wizard: Clean up open wallet UI' (#241) from tobtoht/feather:open_wallet_clean into master
Reviewed-on: https://git.wownero.com/feather/feather/pulls/241
This commit is contained in:
commit
9b4e0e29e4
5 changed files with 52 additions and 15 deletions
|
@ -19,7 +19,7 @@
|
|||
using namespace std::chrono;
|
||||
|
||||
|
||||
WalletKeysFiles::WalletKeysFiles(const QFileInfo &info, quint8 networkType, QString address) :
|
||||
WalletKeysFiles::WalletKeysFiles(const QFileInfo &info, int networkType, QString address) :
|
||||
m_fileName(info.fileName()),
|
||||
m_modified(info.lastModified().toSecsSinceEpoch()),
|
||||
m_path(QDir::toNativeSeparators(info.absoluteFilePath())),
|
||||
|
@ -42,7 +42,7 @@ QString WalletKeysFiles::path() const {
|
|||
return m_path;
|
||||
}
|
||||
|
||||
quint8 WalletKeysFiles::networkType() const {
|
||||
int WalletKeysFiles::networkType() const {
|
||||
return m_networkType;
|
||||
}
|
||||
|
||||
|
@ -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,13 +162,15 @@ QVariant WalletKeysFilesModel::data(const QModelIndex &index, int role) const {
|
|||
#endif
|
||||
return fp;
|
||||
}
|
||||
case ModelColumns::Modified:
|
||||
return walletKeyFile.modified();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else if(role == Qt::UserRole) {
|
||||
switch(index.column()) {
|
||||
case ModelColumns::NetworkType:
|
||||
return static_cast<uint>(walletKeyFile.networkType());
|
||||
return static_cast<int>(walletKeyFile.networkType());
|
||||
case ModelColumns::FileName:
|
||||
return walletKeyFile.fileName();
|
||||
case ModelColumns::Modified:
|
||||
|
@ -201,9 +203,15 @@ QVariant WalletKeysFilesModel::headerData(int section, Qt::Orientation orientati
|
|||
return QVariant();
|
||||
}
|
||||
|
||||
WalletKeysFilesProxyModel::WalletKeysFilesProxyModel(QObject *parent) :
|
||||
QSortFilterProxyModel(parent) {}
|
||||
WalletKeysFilesProxyModel::WalletKeysFilesProxyModel(QObject *parent, NetworkType::Type nettype)
|
||||
: QSortFilterProxyModel(parent)
|
||||
, m_nettype(nettype)
|
||||
{
|
||||
}
|
||||
|
||||
bool WalletKeysFilesProxyModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const {
|
||||
return true;
|
||||
QModelIndex nettypeIndex = sourceModel()->index(sourceRow, WalletKeysFilesModel::NetworkType, sourceParent);
|
||||
NetworkType::Type nettype = static_cast<NetworkType::Type>(sourceModel()->data(nettypeIndex, Qt::UserRole).toInt());
|
||||
|
||||
return (m_nettype == nettype);
|
||||
}
|
|
@ -12,19 +12,19 @@
|
|||
class WalletKeysFiles
|
||||
{
|
||||
public:
|
||||
WalletKeysFiles(const QFileInfo &info, quint8 networkType, QString address);
|
||||
WalletKeysFiles(const QFileInfo &info, int networkType, QString address);
|
||||
|
||||
QString fileName() const;
|
||||
qint64 modified() const;
|
||||
QString path() const;
|
||||
quint8 networkType() const;
|
||||
int networkType() const;
|
||||
QString address() const;
|
||||
|
||||
private:
|
||||
QString m_fileName;
|
||||
qint64 m_modified;
|
||||
QString m_path;
|
||||
quint8 m_networkType;
|
||||
int m_networkType;
|
||||
QString m_address;
|
||||
};
|
||||
|
||||
|
@ -64,8 +64,11 @@ class WalletKeysFilesProxyModel : public QSortFilterProxyModel
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit WalletKeysFilesProxyModel(QObject *parent = nullptr);
|
||||
explicit WalletKeysFilesProxyModel(QObject *parent, NetworkType::Type nettype);
|
||||
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
|
||||
|
||||
private:
|
||||
NetworkType::Type m_nettype;
|
||||
};
|
||||
|
||||
#endif // KEYSFILES_H
|
||||
|
|
|
@ -49,16 +49,33 @@ OpenWalletPage::OpenWalletPage(AppContext *ctx, QWidget *parent) :
|
|||
this->walletKeysFilesModel = new WalletKeysFilesModel(m_ctx);
|
||||
this->walletKeysFilesModel->refresh();
|
||||
|
||||
m_keysProxy = new WalletKeysFilesProxyModel();
|
||||
m_keysProxy = new WalletKeysFilesProxyModel(this, m_ctx->networkType);
|
||||
m_keysProxy->setSourceModel(this->walletKeysFilesModel);
|
||||
m_keysProxy->setSortRole(Qt::UserRole);
|
||||
|
||||
ui->walletTable->setModel(m_keysProxy);
|
||||
ui->walletTable->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
|
||||
ui->walletTable->header()->setSectionResizeMode(WalletKeysFilesModel::Path, QHeaderView::Stretch);
|
||||
ui->walletTable->hideColumn(WalletKeysFilesModel::NetworkType);
|
||||
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 {
|
||||
|
|
|
@ -28,6 +28,8 @@ signals:
|
|||
void openWallet(QString path);
|
||||
|
||||
private:
|
||||
void updatePath();
|
||||
|
||||
AppContext *m_ctx;
|
||||
WalletKeysFilesModel *walletKeysFilesModel;
|
||||
WalletKeysFilesProxyModel *m_keysProxy;
|
||||
|
|
|
@ -55,6 +55,13 @@
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="labelPath">
|
||||
<property name="text">
|
||||
<string>path</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
|
Loading…
Reference in a new issue