diff --git a/app/settings.py b/app/settings.py
new file mode 100644
index 0000000..97645f1
--- /dev/null
+++ b/app/settings.py
@@ -0,0 +1,8 @@
+from PyQt5.QtCore import QSettings
+
+import app
+
+
+class Settings(QSettings):
+ def __init__(self):
+ super().__init__(app.ORG_NAME, app.APP_NAME)
diff --git a/app/ui/proto.ui b/app/ui/proto.ui
index ef62073..6eb2825 100644
--- a/app/ui/proto.ui
+++ b/app/ui/proto.ui
@@ -1044,6 +1044,24 @@ QLabel[enabled="true"] {
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ Roboto Light
+
+
+
+ Re-enable all suppressed warnings
+
+
+
diff --git a/app/ui/transaction_confirmation_dialog.ui b/app/ui/transaction_confirmation_dialog.ui
new file mode 100644
index 0000000..51f38b8
--- /dev/null
+++ b/app/ui/transaction_confirmation_dialog.ui
@@ -0,0 +1,127 @@
+
+
+ transaction_confirmation_dialog
+
+
+
+ 0
+ 0
+ 462
+ 119
+
+
+
+
+ 0
+ 0
+
+
+
+ Dialog
+
+
+ false
+
+
+ true
+
+
+
+
+ 290
+ 80
+ 161
+ 32
+
+
+
+
+ Roboto Light
+ 12
+
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+
+
+ 10
+ 10
+ 441
+ 51
+
+
+
+
+ Roboto Light
+ 12
+
+
+
+ You are about to send a transaction to the network. For this a transaction fee of {fee} CHM will be deducted from your balance.
+
+
+ true
+
+
+
+
+
+ 10
+ 80
+ 181
+ 31
+
+
+
+
+ Roboto Light
+ 12
+
+
+
+ Don't show again
+
+
+
+
+
+
+ buttonBox
+ accepted()
+ transaction_confirmation_dialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ transaction_confirmation_dialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+
diff --git a/app/widgets/change_alias.py b/app/widgets/change_alias.py
index 21eaf5c..f3a8af3 100644
--- a/app/widgets/change_alias.py
+++ b/app/widgets/change_alias.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
import logging
-from PyQt5.QtWidgets import QDialog
from PyQt5.QtCore import pyqtSlot
+from PyQt5.QtWidgets import QDialog
from PyQt5.QtWidgets import QDialogButtonBox
from PyQt5.QtWidgets import QMessageBox
from PyQt5.QtWidgets import QWidget
@@ -10,10 +10,11 @@
from app.backend.rpc import get_active_rpc_client
from app.models import Address
-from app.ui.dialog_change_alias import Ui_dialog_change_alias
from app.models import Profile
from app.signals import signals
from app.tools.validators import username_regex
+from app.ui.dialog_change_alias import Ui_dialog_change_alias
+from app.widgets.transaction_confirmation_dialog import TransactionConfirmationDialog
log = logging.getLogger(__name__)
@@ -54,7 +55,14 @@ def on_alias_changed(self, text):
is_valid = True
self.buttonBox.button(QDialogButtonBox.Save).setDisabled(not is_valid)
+
def save(self):
+ confirmation_dialog = TransactionConfirmationDialog(self)
+ confirmation_dialog.fee = "approximately 0.00074"
+ confirmation_dialog.callback = self.do_save
+ confirmation_dialog.exec()
+
+ def do_save(self):
client = get_active_rpc_client()
try:
response = client.publish(
diff --git a/app/widgets/proto.py b/app/widgets/proto.py
index e08adde..146c249 100644
--- a/app/widgets/proto.py
+++ b/app/widgets/proto.py
@@ -8,6 +8,7 @@
from app import models
from app.models import Profile, Permission, CurrentVote
from app.responses import Getblockchaininfo
+from app.settings import Settings
from app.signals import signals
from app.ui.proto import Ui_MainWindow
from app.widgets.apply import ApplyDialog
@@ -92,6 +93,7 @@ def __init__(self, **kwargs):
self.check_manage_node.setChecked(self.profile.manage_node)
self.check_manage_node.stateChanged['int'].connect(self.setting_changed_manage_node)
self.btn_alias_change.clicked.connect(self.on_change_alias)
+ self.reset_suppressed_warnings.clicked.connect(self.on_reset_suppressed_warnings_click)
# Connections
signals.getblockchaininfo.connect(self.getblockchaininfo)
@@ -151,6 +153,10 @@ def setting_changed_manage_node(self, state):
if self.profile.manage_node:
self.node.start()
+ def on_reset_suppressed_warnings_click(self):
+ settings = Settings()
+ settings.setValue('suppress_transaction_fee_warning', False)
+
def node_started(self):
self.updater.start()
diff --git a/app/widgets/transaction_confirmation_dialog.py b/app/widgets/transaction_confirmation_dialog.py
new file mode 100644
index 0000000..1f7eee7
--- /dev/null
+++ b/app/widgets/transaction_confirmation_dialog.py
@@ -0,0 +1,33 @@
+from PyQt5.QtWidgets import QDialog, QDialogButtonBox
+
+from app.models import Profile
+from app.settings import Settings
+from app.ui.transaction_confirmation_dialog import Ui_transaction_confirmation_dialog
+from typing import Callable
+
+
+class TransactionConfirmationDialog(QDialog, Ui_transaction_confirmation_dialog):
+
+ fee = "YOU SHOULD NEVER SEE THIS"
+ callback = None
+ __settings = Settings()
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ self.setupUi(self)
+ self.setFixedSize(self.size())
+
+ def exec(self):
+ if self.__settings.value('suppress_transaction_fee_warning', type=bool):
+ self.callback()
+ else:
+ self.label.setText(self.label.text().replace("{fee}", self.fee))
+ self.buttonBox.button(QDialogButtonBox.Ok).clicked.connect(self.__on_ok_click)
+ super().exec()
+
+ def __on_ok_click(self):
+
+ if not self.__settings.value('suppress_transaction_fee_warning', type=bool) and self.checkBox.isChecked():
+ self.__settings.setValue('suppress_transaction_fee_warning', True)
+ self.callback()