mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
qt: Add PrivateSend tab in OptionsDialog, allow to show/hide PS UI (#3717)
* qt: Add PrivateSend tab in OptionsDialog, allow to show/hide PS UI * qt: Decrease height of OptionsDialog * Apply suggestions from code review Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com> * qt: Remove obsolete visibility adjustments Not longer needed since the page is just not reachable if the button is hidden. * qt: Make sure PrivateSend related parts are always initialized properly Not only if its enabled on startup.. * qt: Make updatePrivateSendVisibility a slot to fix the signal connection * qt: Fix UI updates on OverviewPage if PrivateSend enabled gets toggled Other way of connecting the slot with true as parameter didn't work.. * qt: Only update and emit the signal for advanced PS UI if required * qt: Update fPrivateSendEnabled in OptionsModel instead of OptionsDialog * qt: Recover the PrivateSend enabled state if OptionsDialog gets rejected * qt: Enable PrivateSend UI by default * qt: Add some brackets * qt: Add a comment * qt: Add a linebreak to the "Enable PrivateSend features" tooltip * qt: Remove obsolete comment Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com> * qt: Move comment * qt: Properly reset the previous PS state if OptionsDialog gets rejected Handle all reject reasons not only the cancle button. Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com> Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
This commit is contained in:
parent
578fe89bfc
commit
9a9e21c910
@ -760,6 +760,8 @@ void BitcoinGUI::setClientModel(ClientModel *_clientModel)
|
||||
|
||||
// initialize the disable state of the tray icon with the current value in the model.
|
||||
setTrayIconVisible(optionsModel->getHideTrayIcon());
|
||||
|
||||
connect(optionsModel, SIGNAL(privateSendEnabledChanged()), this, SLOT(updatePrivateSendVisibility()));
|
||||
}
|
||||
} else {
|
||||
// Disable possibility to show main window via action
|
||||
|
@ -198,8 +198,6 @@ private:
|
||||
|
||||
void updateProgressBarVisibility();
|
||||
|
||||
void updatePrivateSendVisibility();
|
||||
|
||||
void updateToolBarShortcuts();
|
||||
|
||||
Q_SIGNALS:
|
||||
@ -331,6 +329,8 @@ private Q_SLOTS:
|
||||
void toggleNetworkActive();
|
||||
|
||||
void showModalOverlay();
|
||||
|
||||
void updatePrivateSendVisibility();
|
||||
};
|
||||
|
||||
class UnitDisplayStatusBarControl : public QLabel
|
||||
|
@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>583</width>
|
||||
<height>537</height>
|
||||
<height>420</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@ -51,6 +51,16 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnPrivateSend">
|
||||
<property name="text">
|
||||
<string>PrivateSend</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnNetwork">
|
||||
<property name="text">
|
||||
@ -234,25 +244,66 @@
|
||||
<widget class="QWidget" name="pageWallet">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_Wallet">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="coinControlFeatures">
|
||||
<property name="toolTip">
|
||||
<string>Whether to show coin control features or not.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Enable coin &control features</string>
|
||||
</property>
|
||||
</widget>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="coinControlFeatures">
|
||||
<property name="toolTip">
|
||||
<string>Whether to show coin control features or not.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Enable coin &control features</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="showMasternodesTab">
|
||||
<property name="toolTip">
|
||||
<string>Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Masternodes Tab</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="spendZeroConfChange">
|
||||
<property name="toolTip">
|
||||
<string>If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Spend unconfirmed change</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="privateSendEnabled">
|
||||
<property name="toolTip">
|
||||
<string>Show mixing interface on Overview screen and reveal PrivateSend screen which allows to spend fully mixed coins only.<br/>A new tab with more settings will also appear in this dialog, please make sure to check them before mixing your coins.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Enable PrivateSend features</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="showMasternodesTab">
|
||||
<property name="toolTip">
|
||||
<string>Show additional tab listing all your masternodes in first sub-tab<br/>and all masternodes on the network in second sub-tab.</string>
|
||||
<spacer name="verticalSpacer_Wallet">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show Masternodes Tab</string>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="pagePrivateSend">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="showAdvancedPSUI">
|
||||
<property name="toolTip">
|
||||
@ -264,12 +315,12 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="spendZeroConfChange">
|
||||
<widget class="QCheckBox" name="showPrivateSendPopups">
|
||||
<property name="toolTip">
|
||||
<string>If you disable the spending of unconfirmed change, the change from a transaction<br/>cannot be used until that transaction has at least one confirmation.<br/>This also affects how your balance is computed.</string>
|
||||
<string>Show system popups for PrivateSend mixing transactions<br/>just like for all other transaction types.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Spend unconfirmed change</string>
|
||||
<string>Show popups for PrivateSend transactions</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -293,16 +344,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="showPrivateSendPopups">
|
||||
<property name="toolTip">
|
||||
<string>Show system popups for PrivateSend mixing transactions<br/>just like for all other transaction types.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Show popups for PrivateSend transactions</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4_Wallet">
|
||||
<item>
|
||||
@ -373,7 +414,7 @@
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_Wallet">
|
||||
<spacer name="verticalSpacerPS">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
@ -79,12 +79,15 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
|
||||
connect(ui->connectSocksTor, SIGNAL(toggled(bool)), this, SLOT(updateProxyValidationState()));
|
||||
|
||||
pageButtons.addButton(ui->btnMain, pageButtons.buttons().size());
|
||||
/* remove Wallet tab in case of -disablewallet */
|
||||
/* Remove Wallet/PrivateSend tabs in case of -disablewallet */
|
||||
if (!enableWallet) {
|
||||
ui->stackedWidgetOptions->removeWidget(ui->pageWallet);
|
||||
ui->btnWallet->hide();
|
||||
ui->stackedWidgetOptions->removeWidget(ui->pagePrivateSend);
|
||||
ui->btnPrivateSend->hide();
|
||||
} else {
|
||||
pageButtons.addButton(ui->btnWallet, pageButtons.buttons().size());
|
||||
pageButtons.addButton(ui->btnPrivateSend, pageButtons.buttons().size());
|
||||
}
|
||||
pageButtons.addButton(ui->btnNetwork, pageButtons.buttons().size());
|
||||
pageButtons.addButton(ui->btnDisplay, pageButtons.buttons().size());
|
||||
@ -155,6 +158,16 @@ OptionsDialog::OptionsDialog(QWidget *parent, bool enableWallet) :
|
||||
ui->widgetAppearance->setLayout(appearanceLayout);
|
||||
|
||||
updatePrivateSendVisibility();
|
||||
|
||||
// Store the current PrivateSend enabled state to recover it if it gets changed but the dialog gets not accepted but declined.
|
||||
#ifdef ENABLE_WALLET
|
||||
fPrivateSendEnabledPrev = CPrivateSendClientOptions::IsEnabled();
|
||||
connect(this, &OptionsDialog::rejected, [=]() {
|
||||
if (fPrivateSendEnabledPrev != CPrivateSendClientOptions::IsEnabled()) {
|
||||
ui->privateSendEnabled->click();
|
||||
}
|
||||
});
|
||||
#endif
|
||||
}
|
||||
|
||||
OptionsDialog::~OptionsDialog()
|
||||
@ -179,6 +192,17 @@ void OptionsDialog::setModel(OptionsModel *_model)
|
||||
ui->overriddenByCommandLineLabel->setText(strLabel);
|
||||
}
|
||||
|
||||
|
||||
#ifdef ENABLE_WALLET
|
||||
// If -enableprivatesend was passed in on the command line, set the checkbox
|
||||
// to the value given via commandline and disable it (make it unclickable).
|
||||
if (strLabel.contains("-enableprivatesend")) {
|
||||
bool fEnabled = CPrivateSendClientOptions::IsEnabled();
|
||||
ui->privateSendEnabled->setChecked(fEnabled);
|
||||
ui->privateSendEnabled->setEnabled(false);
|
||||
}
|
||||
#endif
|
||||
|
||||
mapper->setModel(_model);
|
||||
setMapper();
|
||||
mapper->toFirst();
|
||||
@ -204,6 +228,16 @@ void OptionsDialog::setModel(OptionsModel *_model)
|
||||
connect(ui->digits, SIGNAL(valueChanged()), this, SLOT(showRestartWarning()));
|
||||
connect(ui->lang, SIGNAL(valueChanged()), this, SLOT(showRestartWarning()));
|
||||
connect(ui->thirdPartyTxUrls, SIGNAL(textChanged(const QString &)), this, SLOT(showRestartWarning()));
|
||||
|
||||
connect(ui->privateSendEnabled, &QCheckBox::clicked, [=](bool fChecked) {
|
||||
#ifdef ENABLE_WALLET
|
||||
CPrivateSendClientOptions::SetEnabled(fChecked);
|
||||
#endif
|
||||
updatePrivateSendVisibility();
|
||||
if (_model != nullptr) {
|
||||
_model->emitPrivateSendEnabledChanged();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void OptionsDialog::setMapper()
|
||||
@ -217,6 +251,7 @@ void OptionsDialog::setMapper()
|
||||
#endif
|
||||
mapper->addMapping(ui->threadsScriptVerif, OptionsModel::ThreadsScriptVerif);
|
||||
mapper->addMapping(ui->databaseCache, OptionsModel::DatabaseCache);
|
||||
mapper->addMapping(ui->privateSendEnabled, OptionsModel::PrivateSendEnabled);
|
||||
|
||||
/* Wallet */
|
||||
mapper->addMapping(ui->coinControlFeatures, OptionsModel::CoinControlFeatures);
|
||||
@ -396,19 +431,7 @@ void OptionsDialog::updatePrivateSendVisibility()
|
||||
#else
|
||||
bool fEnabled = false;
|
||||
#endif
|
||||
std::vector<QWidget*> vecWidgets{
|
||||
ui->showAdvancedPSUI,
|
||||
ui->showPrivateSendPopups,
|
||||
ui->lowKeysWarning,
|
||||
ui->privateSendMultiSession,
|
||||
ui->privateSendAmount,
|
||||
ui->lblPrivateSendAmountText,
|
||||
ui->lblPrivateSendRoundsText,
|
||||
ui->privateSendRounds,
|
||||
};
|
||||
for (auto w : vecWidgets) {
|
||||
w->setVisible(fEnabled);
|
||||
}
|
||||
ui->btnPrivateSend->setVisible(fEnabled);
|
||||
}
|
||||
|
||||
ProxyAddressValidator::ProxyAddressValidator(QObject *parent) :
|
||||
|
@ -74,6 +74,7 @@ private:
|
||||
QButtonGroup pageButtons;
|
||||
QString previousTheme;
|
||||
AppearanceWidget* appearance;
|
||||
bool fPrivateSendEnabledPrev{false};
|
||||
};
|
||||
|
||||
#endif // BITCOIN_QT_OPTIONSDIALOG_H
|
||||
|
@ -113,6 +113,13 @@ void OptionsModel::Init(bool resetSettings)
|
||||
settings.setValue("digits", "2");
|
||||
|
||||
// PrivateSend
|
||||
if (!settings.contains("fPrivateSendEnabled")) {
|
||||
settings.setValue("fPrivateSendEnabled", true);
|
||||
}
|
||||
if (!gArgs.SoftSetBoolArg("-enableprivatesend", settings.value("fPrivateSendEnabled").toBool())) {
|
||||
addOverriddenOption("-enableprivatesend");
|
||||
}
|
||||
|
||||
if (!settings.contains("fShowAdvancedPSUI"))
|
||||
settings.setValue("fShowAdvancedPSUI", false);
|
||||
fShowAdvancedPSUI = settings.value("fShowAdvancedPSUI", false).toBool();
|
||||
@ -330,6 +337,8 @@ QVariant OptionsModel::data(const QModelIndex & index, int role) const
|
||||
return settings.value("bSpendZeroConfChange");
|
||||
case ShowMasternodesTab:
|
||||
return settings.value("fShowMasternodesTab");
|
||||
case PrivateSendEnabled:
|
||||
return settings.value("fPrivateSendEnabled");
|
||||
case ShowAdvancedPSUI:
|
||||
return fShowAdvancedPSUI;
|
||||
case ShowPrivateSendPopups:
|
||||
@ -486,10 +495,18 @@ bool OptionsModel::setData(const QModelIndex & index, const QVariant & value, in
|
||||
setRestartRequired(true);
|
||||
}
|
||||
break;
|
||||
case PrivateSendEnabled:
|
||||
if (settings.value("fPrivateSendEnabled") != value) {
|
||||
settings.setValue("fPrivateSendEnabled", value.toBool());
|
||||
Q_EMIT privateSendEnabledChanged();
|
||||
}
|
||||
break;
|
||||
case ShowAdvancedPSUI:
|
||||
fShowAdvancedPSUI = value.toBool();
|
||||
settings.setValue("fShowAdvancedPSUI", fShowAdvancedPSUI);
|
||||
Q_EMIT advancedPSUIChanged(fShowAdvancedPSUI);
|
||||
if (settings.value("fShowAdvancedPSUI") != value) {
|
||||
fShowAdvancedPSUI = value.toBool();
|
||||
settings.setValue("fShowAdvancedPSUI", fShowAdvancedPSUI);
|
||||
Q_EMIT advancedPSUIChanged(fShowAdvancedPSUI);
|
||||
}
|
||||
break;
|
||||
case ShowPrivateSendPopups:
|
||||
settings.setValue("fShowPrivateSendPopups", value);
|
||||
@ -638,6 +655,11 @@ bool OptionsModel::getProxySettings(QNetworkProxy& proxy) const
|
||||
return false;
|
||||
}
|
||||
|
||||
void OptionsModel::emitPrivateSendEnabledChanged()
|
||||
{
|
||||
Q_EMIT privateSendEnabledChanged();
|
||||
}
|
||||
|
||||
void OptionsModel::setRestartRequired(bool fRequired)
|
||||
{
|
||||
QSettings settings;
|
||||
|
@ -55,6 +55,7 @@ public:
|
||||
DatabaseCache, // int
|
||||
SpendZeroConfChange, // bool
|
||||
ShowMasternodesTab, // bool
|
||||
PrivateSendEnabled, // bool
|
||||
ShowAdvancedPSUI, // bool
|
||||
ShowPrivateSendPopups, // bool
|
||||
LowKeysWarning, // bool
|
||||
@ -84,6 +85,7 @@ public:
|
||||
bool getCoinControlFeatures() const { return fCoinControlFeatures; }
|
||||
bool getShowAdvancedPSUI() { return fShowAdvancedPSUI; }
|
||||
const QString& getOverriddenByCommandLine() { return strOverriddenByCommandLine; }
|
||||
void emitPrivateSendEnabledChanged();
|
||||
|
||||
/* Restart flag helper */
|
||||
void setRestartRequired(bool fRequired);
|
||||
@ -110,6 +112,7 @@ private:
|
||||
void checkAndMigrate();
|
||||
Q_SIGNALS:
|
||||
void displayUnitChanged(int unit);
|
||||
void privateSendEnabledChanged();
|
||||
void privateSendRoundsChanged();
|
||||
void privateSentAmountChanged();
|
||||
void advancedPSUIChanged(bool);
|
||||
|
@ -163,30 +163,14 @@ OverviewPage::OverviewPage(QWidget* parent) :
|
||||
// start with displaying the "out of sync" warnings
|
||||
showOutOfSyncWarning(true);
|
||||
|
||||
if (!CPrivateSendClientOptions::IsEnabled()) return;
|
||||
|
||||
// Disable any PS UI for masternode or when autobackup is disabled or failed for whatever reason
|
||||
if(fMasternodeMode || nWalletBackups <= 0){
|
||||
DisablePrivateSendCompletely();
|
||||
if (nWalletBackups <= 0) {
|
||||
ui->labelPrivateSendEnabled->setToolTip(tr("Automatic backups are disabled, no mixing available!"));
|
||||
}
|
||||
} else {
|
||||
// Disable privateSendClient builtin support for automatic backups while we are in GUI,
|
||||
// we'll handle automatic backups and user warnings in privateSendStatus()
|
||||
for (auto& pair : privateSendClientManagers) {
|
||||
if (!pair.second->IsMixing()) {
|
||||
ui->togglePrivateSend->setText(tr("Start Mixing"));
|
||||
} else {
|
||||
ui->togglePrivateSend->setText(tr("Stop Mixing"));
|
||||
}
|
||||
pair.second->fCreateAutoBackups = false;
|
||||
}
|
||||
|
||||
timer = new QTimer(this);
|
||||
connect(timer, SIGNAL(timeout()), this, SLOT(privateSendStatus()));
|
||||
timer->start(1000);
|
||||
// Disable privateSendClient builtin support for automatic backups while we are in GUI,
|
||||
// we'll handle automatic backups and user warnings in privateSendStatus()
|
||||
for (auto& pair : privateSendClientManagers) {
|
||||
pair.second->fCreateAutoBackups = false;
|
||||
}
|
||||
|
||||
timer = new QTimer(this);
|
||||
connect(timer, SIGNAL(timeout()), this, SLOT(privateSendStatus()));
|
||||
}
|
||||
|
||||
void OverviewPage::handleTransactionClicked(const QModelIndex &index)
|
||||
@ -298,11 +282,12 @@ void OverviewPage::setWalletModel(WalletModel *model)
|
||||
// explicitly update PS frame and transaction list to reflect actual settings
|
||||
updateAdvancedPSUI(model->getOptionsModel()->getShowAdvancedPSUI());
|
||||
|
||||
if (!CPrivateSendClientOptions::IsEnabled()) return;
|
||||
|
||||
connect(model->getOptionsModel(), SIGNAL(privateSendRoundsChanged()), this, SLOT(updatePrivateSendProgress()));
|
||||
connect(model->getOptionsModel(), SIGNAL(privateSentAmountChanged()), this, SLOT(updatePrivateSendProgress()));
|
||||
connect(model->getOptionsModel(), SIGNAL(advancedPSUIChanged(bool)), this, SLOT(updateAdvancedPSUI(bool)));
|
||||
connect(model->getOptionsModel(), &OptionsModel::privateSendEnabledChanged, [=]() {
|
||||
privateSendStatus(true);
|
||||
});
|
||||
|
||||
connect(ui->togglePrivateSend, SIGNAL(clicked()), this, SLOT(togglePrivateSend()));
|
||||
|
||||
@ -459,13 +444,29 @@ void OverviewPage::privateSendStatus(bool fForce)
|
||||
|
||||
if(!walletModel) return;
|
||||
|
||||
// Disable any PS UI for masternode or when autobackup is disabled or failed for whatever reason
|
||||
if (fMasternodeMode || nWalletBackups <= 0) {
|
||||
DisablePrivateSendCompletely();
|
||||
if (nWalletBackups <= 0) {
|
||||
ui->labelPrivateSendEnabled->setToolTip(tr("Automatic backups are disabled, no mixing available!"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
bool fIsEnabled = CPrivateSendClientOptions::IsEnabled();
|
||||
ui->framePrivateSend->setVisible(fIsEnabled);
|
||||
if (!fIsEnabled) {
|
||||
SetupTransactionList(NUM_ITEMS_DISABLED);
|
||||
if (timer != nullptr) {
|
||||
timer->stop();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (timer != nullptr && !timer->isActive()) {
|
||||
timer->start(1000);
|
||||
}
|
||||
|
||||
// Wrap all privatesend related widgets we want to show/hide state based.
|
||||
// Value of the map contains a flag if this widget belongs to the advanced
|
||||
// PrivateSend UI option or not. True if it does, false if not.
|
||||
|
@ -477,6 +477,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain,
|
||||
#btnWallet,
|
||||
#btnPrivateSend,
|
||||
#btnNetwork,
|
||||
#btnDisplay,
|
||||
#btnAppearance,
|
||||
@ -496,6 +497,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:hover:checked,
|
||||
#btnWallet:hover:checked,
|
||||
#btnPrivateSend:hover:checked,
|
||||
#btnNetwork:hover:checked,
|
||||
#btnDisplay:hover:checked,
|
||||
#btnAppearance:hover:checked,
|
||||
@ -515,6 +517,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:hover:!checked,
|
||||
#btnWallet:hover:!checked,
|
||||
#btnPrivateSend:hover:!checked,
|
||||
#btnNetwork:hover:!checked,
|
||||
#btnDisplay:hover:!checked,
|
||||
#btnAppearance:hover:!checked,
|
||||
@ -534,6 +537,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:checked,
|
||||
#btnWallet:checked,
|
||||
#btnPrivateSend:checked,
|
||||
#btnNetwork:checked,
|
||||
#btnDisplay:checked,
|
||||
#btnAppearance:checked,
|
||||
|
@ -621,6 +621,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain,
|
||||
#btnWallet,
|
||||
#btnPrivateSend,
|
||||
#btnNetwork,
|
||||
#btnDisplay,
|
||||
#btnAppearance,
|
||||
@ -643,6 +644,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:hover:checked,
|
||||
#btnWallet:hover:checked,
|
||||
#btnPrivateSend:hover:checked,
|
||||
#btnNetwork:hover:checked,
|
||||
#btnDisplay:hover:checked,
|
||||
#btnAppearance:hover:checked,
|
||||
@ -665,6 +667,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:hover:!checked,
|
||||
#btnWallet:hover:!checked,
|
||||
#btnPrivateSend:hover:!checked,
|
||||
#btnNetwork:hover:!checked,
|
||||
#btnDisplay:hover:!checked,
|
||||
#btnAppearance:hover:!checked,
|
||||
@ -687,6 +690,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:checked,
|
||||
#btnWallet:checked,
|
||||
#btnPrivateSend:checked,
|
||||
#btnNetwork:checked,
|
||||
#btnDisplay:checked,
|
||||
#btnAppearance:checked,
|
||||
@ -708,6 +712,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:hover:pressed,
|
||||
#btnWallet:hover:pressed,
|
||||
#btnPrivateSend:hover:pressed,
|
||||
#btnNetwork:hover:pressed,
|
||||
#btnDisplay:hover:pressed,
|
||||
#btnAppearance:hover:pressed,
|
||||
|
@ -459,6 +459,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain,
|
||||
#btnWallet,
|
||||
#btnPrivateSend,
|
||||
#btnNetwork,
|
||||
#btnDisplay,
|
||||
#btnAppearance,
|
||||
@ -478,6 +479,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:hover:checked,
|
||||
#btnWallet:hover:checked,
|
||||
#btnPrivateSend:hover:checked,
|
||||
#btnNetwork:hover:checked,
|
||||
#btnDisplay:hover:checked,
|
||||
#btnAppearance:hover:checked,
|
||||
@ -497,6 +499,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:hover:!checked,
|
||||
#btnWallet:hover:!checked,
|
||||
#btnPrivateSend:hover:!checked,
|
||||
#btnNetwork:hover:!checked,
|
||||
#btnDisplay:hover:!checked,
|
||||
#btnAppearance:hover:!checked,
|
||||
@ -516,6 +519,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:checked,
|
||||
#btnWallet:checked,
|
||||
#btnPrivateSend:checked,
|
||||
#btnNetwork:checked,
|
||||
#btnDisplay:checked,
|
||||
#btnAppearance:checked,
|
||||
|
@ -54,6 +54,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain,
|
||||
#btnWallet,
|
||||
#btnPrivateSend,
|
||||
#btnNetwork,
|
||||
#btnDisplay,
|
||||
#btnAppearance,
|
||||
@ -77,6 +78,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:hover:checked,
|
||||
#btnWallet:hover:checked,
|
||||
#btnPrivateSend:hover:checked,
|
||||
#btnNetwork:hover:checked,
|
||||
#btnDisplay:hover:checked,
|
||||
#btnAppearance:hover:checked,
|
||||
@ -99,6 +101,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:hover:!checked,
|
||||
#btnWallet:hover:!checked,
|
||||
#btnPrivateSend:hover:!checked,
|
||||
#btnNetwork:hover:!checked,
|
||||
#btnDisplay:hover:!checked,
|
||||
#btnAppearance:hover:!checked,
|
||||
@ -121,6 +124,7 @@ QPushButton - Special case, tabbar replacement buttons
|
||||
/* Options dialog buttons */
|
||||
#btnMain:checked,
|
||||
#btnWallet:checked,
|
||||
#btnPrivateSend:checked,
|
||||
#btnNetwork:checked,
|
||||
#btnDisplay:checked,
|
||||
#btnAppearance:checked,
|
||||
|
@ -250,6 +250,8 @@ void TransactionView::setModel(WalletModel *_model)
|
||||
mapperThirdPartyTxUrls->setMapping(thirdPartyTxUrlAction, listUrls[i].trimmed());
|
||||
}
|
||||
}
|
||||
|
||||
connect(_model->getOptionsModel(), SIGNAL(privateSendEnabledChanged()), this, SLOT(updatePrivateSendVisibility()));
|
||||
}
|
||||
|
||||
// show/hide column Watch-only
|
||||
|
Loading…
Reference in New Issue
Block a user