Wizard: autoselect open if wallets available & refresh wallets when wizard opened

remotes/1691844314220217825/master
tobtoht 3 years ago
parent bd4400a7f2
commit 68c493b736
Signed by untrusted user: tobtoht
GPG Key ID: 1CADD27F41F45C3C

@ -11,13 +11,22 @@
#include "libwalletqt/WalletManager.h"
MenuPage::MenuPage(AppContext *ctx, QWidget *parent) :
QWizardPage(parent),
ui(new Ui::MenuPage),
m_ctx(ctx) {
MenuPage::MenuPage(AppContext *ctx, WalletKeysFilesModel *wallets, QWidget *parent)
: QWizardPage(parent)
, ui(new Ui::MenuPage)
, m_ctx(ctx)
, m_walletKeysFilesModel(wallets)
{
ui->setupUi(this);
this->setButtonText(QWizard::FinishButton, "Open recent wallet");
ui->radioCreate->setChecked(true);
}
void MenuPage::initializePage() {
if (m_walletKeysFilesModel->rowCount() > 0) {
ui->radioOpen->setChecked(true);
} else {
ui->radioCreate->setChecked(true);
}
}
int MenuPage::nextId() const {

@ -19,13 +19,14 @@ class MenuPage : public QWizardPage
Q_OBJECT
public:
explicit MenuPage(AppContext *ctx, QWidget *parent = nullptr);
explicit MenuPage(AppContext *ctx, WalletKeysFilesModel *wallets, QWidget *parent = nullptr);
void initializePage() override;
bool validatePage() override;
int nextId() const override;
private:
AppContext *m_ctx;
QLabel *topLabel;
WalletKeysFilesModel *m_walletKeysFilesModel;
Ui::MenuPage *ui;
};

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>424</width>
<height>245</height>
<width>617</width>
<height>463</height>
</rect>
</property>
<property name="windowTitle">
@ -29,6 +29,9 @@
</item>
<item>
<widget class="QRadioButton" name="radioCreate">
<property name="focusPolicy">
<enum>Qt::ClickFocus</enum>
</property>
<property name="text">
<string>Create new wallet</string>
</property>
@ -36,6 +39,9 @@
</item>
<item>
<widget class="QRadioButton" name="radioOpen">
<property name="focusPolicy">
<enum>Qt::ClickFocus</enum>
</property>
<property name="text">
<string>Open wallet file</string>
</property>
@ -43,6 +49,9 @@
</item>
<item>
<widget class="QRadioButton" name="radioSeed">
<property name="focusPolicy">
<enum>Qt::ClickFocus</enum>
</property>
<property name="text">
<string>Restore wallet from seed</string>
</property>
@ -50,6 +59,9 @@
</item>
<item>
<widget class="QRadioButton" name="radioViewOnly">
<property name="focusPolicy">
<enum>Qt::ClickFocus</enum>
</property>
<property name="text">
<string>Import from keys</string>
</property>

@ -10,12 +10,12 @@
#include <QFileDialog>
#include <QMessageBox>
// @TODO: rescan wallet dir on wizard open
OpenWalletPage::OpenWalletPage(AppContext *ctx, QWidget *parent) :
QWizardPage(parent),
ui(new Ui::OpenWalletPage),
m_ctx(ctx) {
OpenWalletPage::OpenWalletPage(AppContext *ctx, WalletKeysFilesModel *wallets, QWidget *parent)
: QWizardPage(parent)
, ui(new Ui::OpenWalletPage)
, m_ctx(ctx)
, m_walletKeysFilesModel(wallets)
{
ui->setupUi(this);
connect(ui->btnBrowse, &QPushButton::clicked, [=]{
@ -46,11 +46,8 @@ OpenWalletPage::OpenWalletPage(AppContext *ctx, QWidget *parent) :
ui->walletTable->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->walletTable->setContextMenuPolicy(Qt::CustomContextMenu);
this->walletKeysFilesModel = new WalletKeysFilesModel(m_ctx);
this->walletKeysFilesModel->refresh();
m_keysProxy = new WalletKeysFilesProxyModel(this, m_ctx->networkType);
m_keysProxy->setSourceModel(this->walletKeysFilesModel);
m_keysProxy->setSourceModel(m_walletKeysFilesModel);
m_keysProxy->setSortRole(Qt::UserRole);
ui->walletTable->setModel(m_keysProxy);
@ -67,6 +64,10 @@ OpenWalletPage::OpenWalletPage(AppContext *ctx, QWidget *parent) :
});
}
void OpenWalletPage::initializePage() {
m_walletKeysFilesModel->refresh();
}
void OpenWalletPage::updatePath() {
QModelIndex index = ui->walletTable->currentIndex();
if (!index.isValid()) {

@ -20,7 +20,8 @@ class OpenWalletPage : public QWizardPage
Q_OBJECT
public:
explicit OpenWalletPage(AppContext *ctx, QWidget *parent = nullptr);
explicit OpenWalletPage(AppContext *ctx, WalletKeysFilesModel *wallets, QWidget *parent = nullptr);
void initializePage() override;
bool validatePage() override;
int nextId() const override;
@ -31,10 +32,8 @@ private:
void updatePath();
AppContext *m_ctx;
WalletKeysFilesModel *walletKeysFilesModel;
WalletKeysFilesModel *m_walletKeysFilesModel;
WalletKeysFilesProxyModel *m_keysProxy;
QSortFilterProxyModel *ll;
QLabel *topLabel;
Ui::OpenWalletPage *ui;
QStandardItemModel *m_model;
};

@ -18,14 +18,20 @@
#include <QScreen>
#include <QApplication>
WalletWizard::WalletWizard(AppContext *ctx, WalletWizard::Page startPage, QWidget *parent) : QWizard(parent),
m_ctx(ctx) {
WalletWizard::WalletWizard(AppContext *ctx, WalletWizard::Page startPage, QWidget *parent)
: QWizard(parent)
, m_ctx(ctx)
{
this->setWindowTitle("Welcome to Feather Wallet");
this->setWindowIcon(QIcon(":/assets/images/appicons/64x64.png"));
auto openWalletPage = new OpenWalletPage(m_ctx, this);
m_walletKeysFilesModel = new WalletKeysFilesModel(m_ctx, this);
m_walletKeysFilesModel->refresh();
auto openWalletPage = new OpenWalletPage(m_ctx, m_walletKeysFilesModel, this);
auto createWallet = new CreateWalletPage(m_ctx, this);
auto createWalletSeed = new CreateWalletSeedPage(m_ctx, this);
setPage(Page_Menu, new MenuPage(m_ctx, this));
setPage(Page_Menu, new MenuPage(m_ctx, m_walletKeysFilesModel, this));
setPage(Page_CreateWallet, createWallet);
setPage(Page_OpenWallet, openWalletPage);
setPage(Page_CreateWalletSeed, createWalletSeed);

@ -25,6 +25,8 @@ signals:
private:
AppContext *m_ctx;
WalletKeysFilesModel *m_walletKeysFilesModel;
void createWallet();
};

Loading…
Cancel
Save