aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRiccardo Spagni <ric@spagni.net>2016-11-09 20:48:53 +0200
committerRiccardo Spagni <ric@spagni.net>2016-11-09 20:48:54 +0200
commitce386b99ad958ed787ac72ab46199b5fc8a4dc42 (patch)
treeb08c4f94426f244201d2f9b8d268073ff30784f7
parent95fdc816bac0ccfde145230d63267efec34d1200 (diff)
parent689f0415e7e0d47b765b18d370fc6c2cf1edb990 (diff)
downloadmonzero-gui-ce386b99ad958ed787ac72ab46199b5fc8a4dc42.tar.gz
monzero-gui-ce386b99ad958ed787ac72ab46199b5fc8a4dc42.tar.xz
monzero-gui-ce386b99ad958ed787ac72ab46199b5fc8a4dc42.zip
Merge pull request #128
689f041 Report when the GUI is connected to a daemon with mismatched version (moneromooo.monero)
-rw-r--r--LeftPanel.qml3
-rw-r--r--components/NetworkStatusItem.qml34
-rw-r--r--main.qml7
-rw-r--r--src/libwalletqt/Wallet.cpp4
-rw-r--r--src/libwalletqt/Wallet.h14
5 files changed, 49 insertions, 13 deletions
diff --git a/LeftPanel.qml b/LeftPanel.qml
index fee83f0f..5fc3ff33 100644
--- a/LeftPanel.qml
+++ b/LeftPanel.qml
@@ -28,6 +28,7 @@
import QtQuick 2.2
import QtGraphicalEffects 1.0
+import moneroComponents.Wallet 1.0
import "components"
Rectangle {
@@ -373,7 +374,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: (daemonProgress.visible)? daemonProgress.top : parent.bottom;
- connected: false
+ connected: Wallet.ConnectionStatus_Disconnected
}
DaemonProgress {
diff --git a/components/NetworkStatusItem.qml b/components/NetworkStatusItem.qml
index 6fb1d2eb..6667b974 100644
--- a/components/NetworkStatusItem.qml
+++ b/components/NetworkStatusItem.qml
@@ -27,10 +27,35 @@
// THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import QtQuick 2.0
+import moneroComponents.Wallet 1.0
Row {
id: item
- property bool connected: false
+ property var connected: Wallet.ConnectionStatus_Disconnected
+
+ function getConnectionStatusImage(status) {
+ if (status == Wallet.ConnectionStatus_Connected)
+ return "../images/statusConnected.png"
+ else
+ return "../images/statusDisconnected.png"
+ }
+
+ function getConnectionStatusColor(status) {
+ if (status == Wallet.ConnectionStatus_Connected)
+ return "#FF6C3B"
+ else
+ return "#AAAAAA"
+ }
+
+ function getConnectionStatusString(status) {
+ if (status == Wallet.ConnectionStatus_Connected)
+ return qsTr("Connected")
+ if (status == Wallet.ConnectionStatus_WrongVersion)
+ return qsTr("Wrong version")
+ if (status == Wallet.ConnectionStatus_Disconnected)
+ return qsTr("Disconnected")
+ return qsTr("Invalid connection status")
+ }
Item {
id: iconItem
@@ -40,8 +65,7 @@ Row {
Image {
anchors.centerIn: parent
- source: item.connected ? "../images/statusConnected.png" :
- "../images/statusDisconnected.png"
+ source: getConnectionStatusImage(item.connected)
}
}
@@ -62,8 +86,8 @@ Row {
anchors.left: parent.left
font.family: "Arial"
font.pixelSize: 18
- color: item.connected ? "#FF6C3B" : "#AAAAAA"
- text: (item.connected ? qsTr("Connected") : qsTr("Disconnected")) + translationManager.emptyString
+ color: getConnectionStatusColor(item.connected)
+ text: getConnectionStatusString(item.connected) + translationManager.emptyString
}
}
}
diff --git a/main.qml b/main.qml
index daaea015..6f5bdde4 100644
--- a/main.qml
+++ b/main.qml
@@ -284,7 +284,7 @@ ApplicationWindow {
// Daemon fully synced
// TODO: implement onDaemonSynced or similar in wallet API and don't start refresh thread before daemon is synced
- daemonSynced = (currentWallet.connected && dCurrentBlock >= dTargetBlock)
+ daemonSynced = (currentWallet.connected != Wallet.ConnectionStatus_Disconnected && dCurrentBlock >= dTargetBlock)
@@ -408,7 +408,10 @@ ApplicationWindow {
if (transaction.status !== PendingTransaction.Status_Ok) {
console.error("Can't create transaction: ", transaction.errorString);
informationPopup.title = qsTr("Error") + translationManager.emptyString;
- informationPopup.text = qsTr("Can't create transaction: ") + transaction.errorString
+ if (currentWallet.connected == Wallet.ConnectionStatus_WrongVersion)
+ informationPopup.text = qsTr("Can't create transaction: Wrong daemon version: ") + transaction.errorString
+ else
+ informationPopup.text = qsTr("Can't create transaction: ") + transaction.errorString
informationPopup.icon = StandardIcon.Critical
informationPopup.onCloseCallback = null
informationPopup.open();
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp
index b8ab7b4d..d281c03a 100644
--- a/src/libwalletqt/Wallet.cpp
+++ b/src/libwalletqt/Wallet.cpp
@@ -86,9 +86,9 @@ Wallet::Status Wallet::status() const
return static_cast<Status>(m_walletImpl->status());
}
-bool Wallet::connected() const
+Wallet::ConnectionStatus Wallet::connected() const
{
- return m_walletImpl->connected();
+ return static_cast<ConnectionStatus>(m_walletImpl->connected());
}
bool Wallet::synchronized() const
diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h
index 8b100f1a..458dea90 100644
--- a/src/libwalletqt/Wallet.h
+++ b/src/libwalletqt/Wallet.h
@@ -22,7 +22,7 @@ class Wallet : public QObject
Q_PROPERTY(QString seed READ getSeed)
Q_PROPERTY(QString seedLanguage READ getSeedLanguage)
Q_PROPERTY(Status status READ status)
- Q_PROPERTY(bool connected READ connected)
+ Q_PROPERTY(ConnectionStatus connected READ connected)
Q_PROPERTY(bool synchronized READ synchronized)
Q_PROPERTY(QString errorString READ errorString)
Q_PROPERTY(QString address READ address)
@@ -42,6 +42,14 @@ public:
Q_ENUM(Status)
+ enum ConnectionStatus {
+ ConnectionStatus_Connected = Bitmonero::Wallet::ConnectionStatus_Connected,
+ ConnectionStatus_Disconnected = Bitmonero::Wallet::ConnectionStatus_Disconnected,
+ ConnectionStatus_WrongVersion = Bitmonero::Wallet::ConnectionStatus_WrongVersion
+ };
+
+ Q_ENUM(ConnectionStatus)
+
//! returns mnemonic seed
QString getSeed() const;
@@ -54,8 +62,8 @@ public:
//! returns last operation's status
Status status() const;
- //! returns true if wallet connected
- bool connected() const;
+ //! returns whether the wallet is connected, and version status
+ ConnectionStatus connected() const;
//! returns true if wallet was ever synchronized
bool synchronized() const;