]> Nutra Git (v2) - gamesguru/feather.git/commitdiff
Settings: make dialog modal
authortobtoht <thotbot@protonmail.com>
Fri, 22 Oct 2021 11:05:40 +0000 (13:05 +0200)
committertobtoht <thotbot@protonmail.com>
Fri, 22 Oct 2021 11:05:40 +0000 (13:05 +0200)
src/MainWindow.cpp
src/MainWindow.h
src/MainWindow.ui

index bdbdbb2d076edda0cac7cec70937fc3ebf418181..4f0835297cea2e686af4700149eead6d07496045 100644 (file)
@@ -47,7 +47,6 @@ MainWindow::MainWindow(WindowManager *windowManager, Wallet *wallet, QWidget *pa
     // Ensure the destructor is called after closeEvent()
     setAttribute(Qt::WA_DeleteOnClose);
 
-    m_windowSettings = new Settings(m_ctx, this);
     m_windowCalc = new CalcWindow(this);
     m_splashDialog = new SplashDialog(this);
 
@@ -68,19 +67,12 @@ MainWindow::MainWindow(WindowManager *windowManager, Wallet *wallet, QWidget *pa
 #endif
     websocketNotifier()->emitCache(); // Get cached data
 
-    // Settings
-    for (const auto &widget: m_priceTickerWidgets)
-        connect(m_windowSettings, &Settings::preferredFiatCurrencyChanged, widget, &PriceTickerWidget::updateDisplay);
-    connect(m_windowSettings, &Settings::preferredFiatCurrencyChanged, m_balanceTickerWidget, &BalanceTickerWidget::updateDisplay);
-    connect(m_windowSettings, &Settings::preferredFiatCurrencyChanged, m_sendWidget, QOverload<>::of(&SendWidget::onPreferredFiatCurrencyChanged));
-    connect(m_windowSettings, &Settings::skinChanged, this, &MainWindow::skinChanged);
-    QTimer::singleShot(1, [this]{this->updateWidgetIcons();});
-
     connect(m_windowManager, &WindowManager::torSettingsChanged, m_ctx.get(), &AppContext::onTorSettingsChanged);
     connect(torManager(), &TorManager::connectionStateChanged, this, &MainWindow::onTorConnectionStateChanged);
     this->onTorConnectionStateChanged(torManager()->torConnected);
 
     ColorScheme::updateFromWidget(this);
+    QTimer::singleShot(1, [this]{this->updateWidgetIcons();});
 
     // Timers
     connect(&m_updateBytes, &QTimer::timeout, this, &MainWindow::updateNetStats);
@@ -833,9 +825,14 @@ void MainWindow::menuAboutClicked() {
 }
 
 void MainWindow::menuSettingsClicked() {
-    m_windowSettings->raise();
-    m_windowSettings->show();
-    m_windowSettings->activateWindow();
+    Settings settings{m_ctx, this};
+    for (const auto &widget: m_priceTickerWidgets) {
+        connect(&settings, &Settings::preferredFiatCurrencyChanged, widget, &PriceTickerWidget::updateDisplay);
+    }
+    connect(&settings, &Settings::preferredFiatCurrencyChanged, m_balanceTickerWidget, &BalanceTickerWidget::updateDisplay);
+    connect(&settings, &Settings::preferredFiatCurrencyChanged, m_sendWidget, QOverload<>::of(&SendWidget::onPreferredFiatCurrencyChanged));
+    connect(&settings, &Settings::skinChanged, this, &MainWindow::skinChanged);
+    settings.exec();
 }
 
 void MainWindow::menuSignVerifyClicked() {
index a007aa47443ea47e3ac3c9acc9721c1310689fb2..fc863e156e7d46a3ad348f74d74d85af9ec9a957 100644 (file)
@@ -223,7 +223,6 @@ private:
     WindowManager *m_windowManager;
     QSharedPointer<AppContext> m_ctx;
 
-    Settings *m_windowSettings = nullptr;
     CalcWindow *m_windowCalc = nullptr;
     SplashDialog *m_splashDialog = nullptr;
 
index a80c4604a05aa6f8bde77c7a9c15adfbc38824b1..3d82bf17ccc4eef3bcfd3abd9f0ae28280964bd0 100644 (file)
     </property>
     <addaction name="actionAbout"/>
     <addaction name="actionOfficialWebsite"/>
-    <addaction name="actionDonate_to_Feather"/>
     <addaction name="separator"/>
     <addaction name="actionDocumentation"/>
     <addaction name="actionReport_bug"/>
     <addaction name="actionShow_debug_info"/>
+    <addaction name="separator"/>
+    <addaction name="actionDonate_to_Feather"/>
    </widget>
    <widget class="QMenu" name="menuView">
     <property name="title">