mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-26 06:12:17 -04:00
save zoom factor per zim
Each time the zoom of a zim is changed, it is saved in the QSettings. The SettingsManager class has new methods that wrap QSettings method : - void setSettings(const QString &key, const QVariant &value); - void deleteSettings(const QString &key); - bool settingsExists(const QString &key); - QVariant getSettings(const QString &key);
This commit is contained in:
parent
0289709771
commit
c3172c058b
@ -6,6 +6,7 @@ kiwix-desktop rc4
|
||||
* Fix Reading list with bookmarks from missing books
|
||||
* Support video fullscreen mode
|
||||
* Support the default zoom level setting
|
||||
* Support zoom level per zim
|
||||
|
||||
kiwix-desktop rc3
|
||||
=================
|
||||
|
@ -241,6 +241,7 @@ void ContentManager::eraseBook(const QString& id)
|
||||
} else {
|
||||
emit(oneBookChanged(id));
|
||||
}
|
||||
KiwixApp::instance()->getSettingsManager()->deleteSettings(id);
|
||||
}
|
||||
|
||||
void ContentManager::pauseBook(const QString& id)
|
||||
|
@ -5,7 +5,7 @@ SettingsManager::SettingsManager(QObject *parent)
|
||||
m_settings("Kiwix", "Kiwix-desktop"),
|
||||
m_settingsViewDisplayed(false)
|
||||
{
|
||||
setSettings();
|
||||
initSettings();
|
||||
}
|
||||
|
||||
SettingsManagerView* SettingsManager::getView()
|
||||
@ -18,6 +18,36 @@ SettingsManagerView* SettingsManager::getView()
|
||||
return view;
|
||||
}
|
||||
|
||||
void SettingsManager::setSettings(const QString &key, const QVariant &value)
|
||||
{
|
||||
m_settings.setValue(key, value);
|
||||
}
|
||||
|
||||
void SettingsManager::deleteSettings(const QString &key)
|
||||
{
|
||||
m_settings.remove(key);
|
||||
}
|
||||
|
||||
bool SettingsManager::settingsExists(const QString &key)
|
||||
{
|
||||
return m_settings.contains(key);
|
||||
}
|
||||
|
||||
QVariant SettingsManager::getSettings(const QString &key)
|
||||
{
|
||||
return m_settings.value(key);
|
||||
}
|
||||
|
||||
qreal SettingsManager::getZoomFactorByZimId(const QString &id)
|
||||
{
|
||||
auto zoomFactor = m_zoomFactor;
|
||||
QString key = id + "/zoomFactor";
|
||||
if (settingsExists(key)) {
|
||||
zoomFactor = getSettings(key).toDouble();
|
||||
}
|
||||
return zoomFactor;
|
||||
}
|
||||
|
||||
void SettingsManager::setKiwixServerPort(int port)
|
||||
{
|
||||
m_kiwixServerPort = port;
|
||||
@ -31,7 +61,7 @@ void SettingsManager::setZoomFactor(qreal zoomFactor)
|
||||
m_settings.setValue("view/zoomFactor", zoomFactor);
|
||||
}
|
||||
|
||||
void SettingsManager::setSettings()
|
||||
void SettingsManager::initSettings()
|
||||
{
|
||||
m_kiwixServerPort = m_settings.value("localKiwixServer/port", 8181).toInt();
|
||||
m_zoomFactor = m_settings.value("view/zoomFactor", 1).toDouble();
|
||||
|
@ -17,6 +17,11 @@ public:
|
||||
|
||||
SettingsManagerView* getView();
|
||||
bool isSettingsViewdisplayed() { return m_settingsViewDisplayed; };
|
||||
void setSettings(const QString &key, const QVariant &value);
|
||||
void deleteSettings(const QString &key);
|
||||
bool settingsExists(const QString &key);
|
||||
QVariant getSettings(const QString &key);
|
||||
qreal getZoomFactorByZimId(const QString &id);
|
||||
|
||||
public slots:
|
||||
void setKiwixServerPort(int port);
|
||||
@ -25,7 +30,7 @@ public slots:
|
||||
qreal getZoomFactor() { return m_zoomFactor; };
|
||||
|
||||
private:
|
||||
void setSettings();
|
||||
void initSettings();
|
||||
|
||||
signals:
|
||||
void portChanged(int port);
|
||||
|
@ -46,6 +46,8 @@ TabBar::TabBar(QWidget *parent) :
|
||||
zoomFactor += 0.1;
|
||||
zoomFactor = max(min(zoomFactor, 5.0), 0.25);
|
||||
current->setZoomFactor(zoomFactor);
|
||||
auto key = this->currentZimId() + "/zoomFactor";
|
||||
KiwixApp::instance()->getSettingsManager()->setSettings(key, zoomFactor);
|
||||
});
|
||||
connect(app->getAction(KiwixApp::ZoomOutAction), &QAction::triggered,
|
||||
this, [=]() {
|
||||
@ -55,12 +57,17 @@ TabBar::TabBar(QWidget *parent) :
|
||||
zoomFactor -= 0.1;
|
||||
zoomFactor = max(min(zoomFactor, 5.0), 0.25);
|
||||
current->setZoomFactor(zoomFactor);
|
||||
auto key = this->currentZimId() + "/zoomFactor";
|
||||
KiwixApp::instance()->getSettingsManager()->setSettings(key, zoomFactor);
|
||||
});
|
||||
connect(app->getAction(KiwixApp::ZoomResetAction), &QAction::triggered,
|
||||
this, [=]() {
|
||||
auto current = this->currentWidget();
|
||||
QUITIFNULL(current);
|
||||
current->setZoomFactor(1.0);
|
||||
auto settingsManager = KiwixApp::instance()->getSettingsManager();
|
||||
current->setZoomFactor(settingsManager->getZoomFactor());
|
||||
auto key = this->currentZimId() + "/zoomFactor";
|
||||
settingsManager->deleteSettings(key);
|
||||
});
|
||||
connect(app->getAction(KiwixApp::OpenHomePageAction), &QAction::triggered,
|
||||
this, [=]() {
|
||||
@ -170,8 +177,6 @@ void TabBar::openUrl(const QUrl& url, bool newTab)
|
||||
}
|
||||
QUITIFNULL(webView);
|
||||
webView->setUrl(url);
|
||||
auto zoomFactor = KiwixApp::instance()->getSettingsManager()->getZoomFactor();
|
||||
webView->setZoomFactor(zoomFactor);
|
||||
}
|
||||
|
||||
void TabBar::setTitleOf(const QString& title, WebView* webView)
|
||||
|
@ -54,6 +54,8 @@ void WebView::onUrlChanged(const QUrl& url) {
|
||||
pixmap.loadFromData((const uchar*)favicon.data(), favicon.size());
|
||||
m_icon = QIcon(pixmap);
|
||||
emit iconChanged(m_icon);
|
||||
auto zoomFactor = app->getSettingsManager()->getZoomFactorByZimId(zimId);
|
||||
this->setZoomFactor(zoomFactor);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user