From de4fdbf033e136555f36f71896e5c505a9e052e0 Mon Sep 17 00:00:00 2001 From: juuz0 <2002nikhiltanwar@gmail.com> Date: Fri, 8 Oct 2021 09:49:48 +0530 Subject: [PATCH] Dropped signals from SettingsView SettingsView now responds to signals from SettingsManager to change values Fixed indentation --- src/settingsmanager.cpp | 19 ++++++------------- src/settingsmanager.h | 5 ++--- src/settingsview.cpp | 37 ++++++++++++++++++++++++++++++++----- src/settingsview.h | 7 ++++--- 4 files changed, 44 insertions(+), 24 deletions(-) diff --git a/src/settingsmanager.cpp b/src/settingsmanager.cpp index ad9ae78..6eff956 100644 --- a/src/settingsmanager.cpp +++ b/src/settingsmanager.cpp @@ -15,13 +15,10 @@ SettingsManager::SettingsManager(QObject *parent) SettingsView* SettingsManager::getView() { if (m_view == nullptr) { - auto view = new SettingsView(); - view->init(m_kiwixServerPort, m_zoomFactor * 100, m_downloadDir); - connect(view, &SettingsView::serverPortChanged, this, &SettingsManager::setKiwixServerPort); - connect(view, &SettingsView::downloadDirChanged, this, &SettingsManager::setDownloadDir); - connect(view, &SettingsView::zoomFactorChanged, this, &SettingsManager::setZoom); - connect(view, &QObject::destroyed, this, [=]() { m_view = nullptr; }); - m_view = view; + auto view = new SettingsView(); + view->init(m_kiwixServerPort, m_zoomFactor * 100, m_downloadDir); + connect(view, &QObject::destroyed, this, [=]() { m_view = nullptr; }); + m_view = view; } return m_view; } @@ -63,22 +60,18 @@ void SettingsManager::setKiwixServerPort(int port) emit(portChanged(port)); } -void SettingsManager::setZoom(int factor) -{ - qreal zoomFactor = (double)factor/100; - setZoomFactor(zoomFactor); -} - void SettingsManager::setZoomFactor(qreal zoomFactor) { m_zoomFactor = zoomFactor; m_settings.setValue("view/zoomFactor", zoomFactor); + emit(zoomChanged(zoomFactor)); } bool SettingsManager::setDownloadDir(QString downloadDir) { m_downloadDir = downloadDir; m_settings.setValue("download/dir", downloadDir); + emit(downloadDirChanged(downloadDir)); return true; } diff --git a/src/settingsmanager.h b/src/settingsmanager.h index d7a6116..82db2f2 100644 --- a/src/settingsmanager.h +++ b/src/settingsmanager.h @@ -9,8 +9,8 @@ class SettingsManager : public QObject { Q_OBJECT Q_PROPERTY(int kiwixServerPort READ getKiwixServerPort NOTIFY portChanged) - Q_PROPERTY(qreal zoomFactor READ getZoomFactor NOTIFY zoomChanged) - Q_PROPERTY(QString downloadDir READ getDownloadDir NOTIFY downloadDirChanged) + Q_PROPERTY(qreal zoomFactor MEMBER m_zoomFactor NOTIFY zoomChanged) + Q_PROPERTY(QString downloadDir MEMBER m_downloadDir NOTIFY downloadDirChanged) public: explicit SettingsManager(QObject *parent = nullptr); @@ -31,7 +31,6 @@ public slots: qreal getZoomFactor() { return m_zoomFactor; }; bool setDownloadDir(QString downloadDir); QString getDownloadDir() { return m_downloadDir; } - void setZoom(int factor); private: void initSettings(); diff --git a/src/settingsview.cpp b/src/settingsview.cpp index 55f6920..5387aa9 100644 --- a/src/settingsview.cpp +++ b/src/settingsview.cpp @@ -15,8 +15,11 @@ SettingsView::SettingsView(QWidget *parent) ui->widget->setStyleSheet(styleSheet); connect(ui->serverPortSpinBox, QOverload::of(&QSpinBox::valueChanged), this, &SettingsView::serverPortChanged); connect(ui->zoomLevelSpinBox, QOverload::of(&QSpinBox::valueChanged), this, &SettingsView::zoomFactorChanged); - connect(ui->resetButton, &QPushButton::clicked, this, &SettingsView::resetDownloadDir); connect(ui->browseButton, &QPushButton::clicked, this, &SettingsView::browseDownloadDir); + connect(ui->resetButton, &QPushButton::clicked, this, &SettingsView::resetDownloadDir); + connect(KiwixApp::instance()->getSettingsManager(), &SettingsManager::downloadDirChanged, this, &SettingsView::setDownloadDir); + connect(KiwixApp::instance()->getSettingsManager(), &SettingsManager::zoomChanged, this, &SettingsView::setZoom); + connect(KiwixApp::instance()->getSettingsManager(), &SettingsManager::portChanged, this, &SettingsView::setKiwixServerPort); ui->settingsLabel->setText(gt("settings")); ui->serverPortLabel->setText(gt("port-for-local-kiwix-server-setting")); ui->zoomLevelLabel->setText(gt("zoom-level-setting")); @@ -54,8 +57,7 @@ void SettingsView::resetDownloadDir() return; } if (confirmDialogDownloadDir(dir)) { - ui->downloadDirPath->setText(dir); - emit(downloadDirChanged(dir)); + KiwixApp::instance()->getSettingsManager()->setDownloadDir(dir); } } @@ -71,7 +73,32 @@ void SettingsView::browseDownloadDir() } if (confirmDialogDownloadDir(dir)) { - ui->downloadDirPath->setText(dir); - emit(downloadDirChanged(dir)); + KiwixApp::instance()->getSettingsManager()->setDownloadDir(dir); } } + +void SettingsView::zoomFactorChanged(int factor) +{ + qreal zoomFactor = (qreal) factor/100; + KiwixApp::instance()->getSettingsManager()->setZoomFactor(zoomFactor); +} + +void SettingsView::serverPortChanged(int port) +{ + KiwixApp::instance()->getSettingsManager()->setKiwixServerPort(port); +} + +void SettingsView::setDownloadDir(const QString &dir) +{ + ui->downloadDirPath->setText(dir); +} + +void SettingsView::setZoom(qreal factor) +{ + ui->zoomLevelSpinBox->setValue(factor*100); +} + +void SettingsView::setKiwixServerPort(int port) +{ + ui->serverPortSpinBox->setValue(port); +} \ No newline at end of file diff --git a/src/settingsview.h b/src/settingsview.h index 7af92d2..8c5a292 100644 --- a/src/settingsview.h +++ b/src/settingsview.h @@ -15,10 +15,11 @@ public: public Q_SLOTS: void resetDownloadDir(); void browseDownloadDir(); -signals: - void serverPortChanged(int port); void zoomFactorChanged(int factor); - void downloadDirChanged(const QString &dir); + void setDownloadDir(const QString &dir); + void setZoom(qreal factor); + void setKiwixServerPort(int port); + void serverPortChanged(int port); private: bool confirmDialogDownloadDir(const QString& dir);