aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/main.cpp9
-rw-r--r--src/qt/KeysFiles.cpp8
-rw-r--r--src/qt/KeysFiles.h10
-rw-r--r--wizard/WizardOpenWallet1.qml9
4 files changed, 19 insertions, 17 deletions
diff --git a/src/main/main.cpp b/src/main/main.cpp
index 6b01dfc9..3aeb2ded 100644
--- a/src/main/main.cpp
+++ b/src/main/main.cpp
@@ -357,6 +357,7 @@ Verify update binary using 'shasum'-compatible (SHA256 algo) output signed by tw
// registering types for QML
qmlRegisterType<clipboardAdapter>("moneroComponents.Clipboard", 1, 0, "Clipboard");
qmlRegisterType<Downloader>("moneroComponents.Downloader", 1, 0, "Downloader");
+ qmlRegisterType<WalletKeysFilesModel>("moneroComponents.WalletKeysFilesModel", 1, 0, "WalletKeysFilesModel");
// Temporary Qt.labs.settings replacement
qmlRegisterType<MoneroSettings>("moneroComponents.Settings", 1, 0, "MoneroSettings");
@@ -376,9 +377,6 @@ Verify update binary using 'shasum'-compatible (SHA256 algo) output signed by tw
qmlRegisterUncreatableType<TranslationManager>("moneroComponents.TranslationManager", 1, 0, "TranslationManager",
"TranslationManager can't be instantiated directly");
- qmlRegisterUncreatableType<WalletKeysFilesModel>("moneroComponents.walletKeysFilesModel", 1, 0, "WalletKeysFilesModel",
- "walletKeysFilesModel can't be instantiated directly");
-
qmlRegisterUncreatableType<TransactionHistoryModel>("moneroComponents.TransactionHistoryModel", 1, 0, "TransactionHistoryModel",
"TransactionHistoryModel can't be instantiated directly");
@@ -478,11 +476,6 @@ Verify update binary using 'shasum'-compatible (SHA256 algo) output signed by tw
engine.rootContext()->setContextProperty("desktopFolder", desktopFolder);
#endif
- // Wallet .keys files model (wizard -> open wallet)
- WalletKeysFilesModel walletKeysFilesModel;
- engine.rootContext()->setContextProperty("walletKeysFilesModel", &walletKeysFilesModel);
- engine.rootContext()->setContextProperty("walletKeysFilesModelProxy", &walletKeysFilesModel.proxyModel());
-
// Get default account name
QString accountName = qgetenv("USER"); // mac/linux
if (accountName.isEmpty())
diff --git a/src/qt/KeysFiles.cpp b/src/qt/KeysFiles.cpp
index 15f7c6eb..dfd17c40 100644
--- a/src/qt/KeysFiles.cpp
+++ b/src/qt/KeysFiles.cpp
@@ -81,17 +81,15 @@ quint8 WalletKeysFiles::networkType() const
WalletKeysFilesModel::WalletKeysFilesModel(QObject *parent)
: QAbstractListModel(parent)
{
- this->m_walletKeysFilesItemModel = qobject_cast<QAbstractItemModel *>(this);
-
- this->m_walletKeysFilesModelProxy.setSourceModel(this->m_walletKeysFilesItemModel);
+ this->m_walletKeysFilesModelProxy.setSourceModel(this);
this->m_walletKeysFilesModelProxy.setSortRole(WalletKeysFilesModel::ModifiedRole);
this->m_walletKeysFilesModelProxy.setDynamicSortFilter(true);
this->m_walletKeysFilesModelProxy.sort(0, Qt::DescendingOrder);
}
-QSortFilterProxyModel &WalletKeysFilesModel::proxyModel()
+QSortFilterProxyModel *WalletKeysFilesModel::proxyModel()
{
- return m_walletKeysFilesModelProxy;
+ return &m_walletKeysFilesModelProxy;
}
void WalletKeysFilesModel::clear()
diff --git a/src/qt/KeysFiles.h b/src/qt/KeysFiles.h
index a8a0dbe2..610c3c3a 100644
--- a/src/qt/KeysFiles.h
+++ b/src/qt/KeysFiles.h
@@ -56,6 +56,8 @@ private:
class WalletKeysFilesModel : public QAbstractListModel
{
Q_OBJECT
+ Q_PROPERTY(QSortFilterProxyModel *proxyModel READ proxyModel NOTIFY proxyModelChanged)
+
public:
enum KeysFilesRoles {
FileNameRole = Qt::UserRole + 1,
@@ -74,16 +76,20 @@ public:
void addWalletKeysFile(const WalletKeysFiles &walletKeysFile);
int rowCount(const QModelIndex & parent = QModelIndex()) const;
- QSortFilterProxyModel &proxyModel();
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
QHash<int, QByteArray> roleNames() const;
+private:
+ QSortFilterProxyModel *proxyModel();
+
protected:
+signals:
+ void proxyModelChanged() const;
+
private:
QList<WalletKeysFiles> m_walletKeyFiles;
- QAbstractItemModel *m_walletKeysFilesItemModel;
QSortFilterProxyModel m_walletKeysFilesModelProxy;
};
diff --git a/wizard/WizardOpenWallet1.qml b/wizard/WizardOpenWallet1.qml
index 85bc48d7..9385b88b 100644
--- a/wizard/WizardOpenWallet1.qml
+++ b/wizard/WizardOpenWallet1.qml
@@ -33,6 +33,7 @@ import QtQuick.Controls 2.0
import QtGraphicalEffects 1.0
import Qt.labs.folderlistmodel 2.1
import moneroComponents.NetworkType 1.0
+import moneroComponents.WalletKeysFilesModel 1.0
import "../js/Wizard.js" as Wizard
import "../components"
@@ -45,7 +46,11 @@ Rectangle {
color: "transparent"
property alias pageHeight: pageRoot.height
property string viewName: "wizardOpenWallet1"
- property int walletCount: walletKeysFilesModel ? walletKeysFilesModel.rowCount() : 0
+ property int walletCount: walletKeysFilesModel.rowCount()
+
+ WalletKeysFilesModel {
+ id: walletKeysFilesModel
+ }
ColumnLayout {
id: pageRoot
@@ -112,7 +117,7 @@ Rectangle {
Repeater {
id: recentList
clip: true
- model: walletKeysFilesModelProxy
+ model: walletKeysFilesModel.proxyModel
Layout.fillWidth: true
Layout.minimumWidth: flow.itemHeight
Layout.preferredHeight: parent.height