Dropped signals from SettingsView

SettingsView now responds to signals from SettingsManager to change values
Fixed indentation
This commit is contained in:
juuz0 2021-10-08 09:49:48 +05:30 committed by Emmanuel Engelhart
parent 8ba4e8ab85
commit de4fdbf033
4 changed files with 44 additions and 24 deletions

View File

@ -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;
}

View File

@ -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();

View File

@ -15,8 +15,11 @@ SettingsView::SettingsView(QWidget *parent)
ui->widget->setStyleSheet(styleSheet);
connect(ui->serverPortSpinBox, QOverload<int>::of(&QSpinBox::valueChanged), this, &SettingsView::serverPortChanged);
connect(ui->zoomLevelSpinBox, QOverload<int>::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);
}

View File

@ -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);