diff --git a/src/sakia/gui/dialogs/transfer/controller.py b/src/sakia/gui/dialogs/transfer/controller.py index 8e1f43de02f5aef64867fe551764f80ee829c5d8..d1b3c08665ec3de25c51e97a0fa8fc0083bcb49d 100644 --- a/src/sakia/gui/dialogs/transfer/controller.py +++ b/src/sakia/gui/dialogs/transfer/controller.py @@ -140,7 +140,7 @@ class TransferController(QObject): logging.debug("checking recipient mode...") recipient = self.selected_pubkey() - amount = self.view.spinbox_amount.value() + amount = self.view.spinbox_amount.value() * 100 #TODO: Handle other amount base than 0 amount_base = 0 @@ -183,7 +183,7 @@ class TransferController(QObject): else: self.view.set_button_box(TransferView.ButtonBoxState.OK) - max_relative = self.model.quant_to_rel(amount) + max_relative = self.model.quant_to_rel(amount/100) current_base = self.model.current_base() self.view.set_spinboxes_parameters(pow(10, current_base), amount, max_relative) @@ -194,20 +194,7 @@ class TransferController(QObject): self.refresh_amount_suffix() def refresh_amount_suffix(self): - #TODO: Handle other exponents than 0 (using a custom spinbox ?) - unicodes = { - '0': ord('\u2070'), - '1': ord('\u00B9'), - '2': ord('\u00B2'), - '3': ord('\u00B3'), - } - for n in range(4, 10): - unicodes[str(n)] = ord('\u2070') + n - - exponent = "" - for n in str('0'): - exponent += chr(unicodes[n]) - self.view.spinbox_amount.setSuffix(" x10" + exponent + " " + self.model.connection.currency) + self.view.spinbox_amount.setSuffix(" " + self.model.connection.currency) def handle_relative_change(self, value): amount = self.model.rel_to_quant(value) diff --git a/src/sakia/gui/dialogs/transfer/model.py b/src/sakia/gui/dialogs/transfer/model.py index a06ee97ccd379f99c6b5eab84128b951ca3a39e1..7d07b33d80273f61e2fe62d38103c6a7fd5f4987 100644 --- a/src/sakia/gui/dialogs/transfer/model.py +++ b/src/sakia/gui/dialogs/transfer/model.py @@ -36,7 +36,7 @@ class TransferModel(QObject): amount = rel_value * dividend * pow(10, base) # amount is rounded to the nearest power of 10 depending of last ud base rounded = int(pow(10, base) * round(float(amount) / pow(10, base))) - return rounded + return rounded / 100 def quant_to_rel(self, amount): """ @@ -45,7 +45,7 @@ class TransferModel(QObject): :rtype: float """ dividend, base = self._blockchain_processor.last_ud(self.connection.currency) - relative = amount / (dividend * pow(10, base)) + relative = amount * 100 / (dividend * pow(10, base)) return relative def wallet_value(self): diff --git a/src/sakia/gui/dialogs/transfer/transfer.ui b/src/sakia/gui/dialogs/transfer/transfer.ui index e8f16f25b512e928f363289f75cc147c0f53a9ed..5b9a2593595ea6daca3a870e3a868b4efc3c158a 100644 --- a/src/sakia/gui/dialogs/transfer/transfer.ui +++ b/src/sakia/gui/dialogs/transfer/transfer.ui @@ -192,13 +192,16 @@ <bool>false</bool> </property> <property name="buttonSymbols"> - <enum>QAbstractSpinBox::NoButtons</enum> + <enum>QAbstractSpinBox::UpDownArrows</enum> </property> <property name="showGroupSeparator" stdset="0"> <bool>false</bool> </property> <property name="decimals"> - <number>0</number> + <number>2</number> + </property> + <property name="singleStep"> + <double>1.000000000000000</double> </property> <property name="value"> <double>0.000000000000000</double> diff --git a/src/sakia/gui/dialogs/transfer/view.py b/src/sakia/gui/dialogs/transfer/view.py index 67b448d0097209b436334cabf6d1808a88ba936c..458215e38fc15adce2eb263965da38ccf245b5a1 100644 --- a/src/sakia/gui/dialogs/transfer/view.py +++ b/src/sakia/gui/dialogs/transfer/view.py @@ -105,7 +105,7 @@ class TransferView(QDialog, Ui_TransferMoneyDialog): :param int max_quant: :param float max_rel: """ - self.spinbox_amount.setMaximum(max_quant) + self.spinbox_amount.setMaximum(max_quant/100) self.spinbox_relative.setMaximum(max_rel) self.spinbox_amount.setSingleStep(tick_quant) diff --git a/src/sakia/gui/navigation/informations/controller.py b/src/sakia/gui/navigation/informations/controller.py index 93a5568a5f1d9c0ead4c5d46192dced982d9726b..21107dbcdad3324bfd32ad18009c3634707b571b 100644 --- a/src/sakia/gui/navigation/informations/controller.py +++ b/src/sakia/gui/navigation/informations/controller.py @@ -34,11 +34,24 @@ class InformationsController(QObject): @classmethod def create(cls, parent, app, connection, blockchain_service, identities_service, sources_service): + """ + + :param parent: + :param sakia.app.Application app: + :param connection: + :param blockchain_service: + :param identities_service: + :param sources_service: + :return: + """ view = InformationsView(parent.view) model = InformationsModel(None, app, connection, blockchain_service, identities_service, sources_service) informations = cls(parent, view, model) model.setParent(informations) informations.init_view_text() + app.identity_changed.connect(informations.handle_identity_change) + app.new_transfer.connect(informations.refresh_localized_data) + app.new_dividend.connect(informations.refresh_localized_data) return informations @asyncify @@ -56,6 +69,10 @@ class InformationsController(QObject): self.view.set_wot_text(params) self.refresh_localized_data() + def handle_identity_change(self, identity): + if identity.pubkey == self.model.connection.pubkey and identity.uid == self.model.connection.uid: + self.refresh_localized_data() + def refresh_localized_data(self): """ Refresh localized data in view diff --git a/src/sakia/gui/navigation/txhistory/table_model.py b/src/sakia/gui/navigation/txhistory/table_model.py index e96526e2fd5b954dd54ebcc4a373ae4c518ee79e..5c84de5115c3e5c0f2e82c3e330c671b5ea943fb 100644 --- a/src/sakia/gui/navigation/txhistory/table_model.py +++ b/src/sakia/gui/navigation/txhistory/table_model.py @@ -227,9 +227,9 @@ class HistoryTableModel(QAbstractTableModel): for i, data in enumerate(self.transfers_data): if data[self.columns_types.index('txhash')] == transfer.sha_hash: if transfer.issuer == self.connection.pubkey: - self.transfers_data[self.columns_types.index('txhash')] = self.data_sent(transfer) + self.transfers_data[i] = self.data_sent(transfer) else: - self.transfers_data[self.columns_types.index('txhash')] = self.data_received(transfer) + self.transfers_data[i] = self.data_received(transfer) self.dataChanged.emit(self.index(i, 0), self.index(i, len(self.columns_types))) return