diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/main.cpp | 9 | ||||
| -rw-r--r-- | src/qt/KeysFiles.cpp | 8 | ||||
| -rw-r--r-- | src/qt/KeysFiles.h | 10 |
3 files changed, 12 insertions, 15 deletions
diff --git a/src/main/main.cpp b/src/main/main.cpp index 41b41faa..b17c0e19 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -354,6 +354,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"); @@ -373,9 +374,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"); @@ -475,11 +473,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; }; |
