mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-08 11:45:09 -04:00
Stored settings view in settings manager
Deleted some helper functions (browseDownloadDir, confirmDownloadDir, resetDownloadDir) from SettingsManager Deleted unnecessary settingsManager.js and settingsManager.html Fixed settingsManager.css code factoring issues
This commit is contained in:
parent
e01473085b
commit
8ba4e8ab85
@ -1,5 +1,5 @@
|
|||||||
QWidget#widget{
|
QWidget#widget {
|
||||||
max-width:500;
|
max-width: 500;
|
||||||
}
|
}
|
||||||
|
|
||||||
QLabel,
|
QLabel,
|
||||||
@ -10,30 +10,31 @@ QSpinBox {
|
|||||||
padding: 8px;
|
padding: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
QFrame[frameShape="4"] { /*frameShape 4 is HLine */
|
QFrame[frameShape="4"] {
|
||||||
border:1px solid #eaecf0;
|
/*frameShape 4 is HLine */
|
||||||
min-height:0pt;
|
border: 1px solid #eaecf0;
|
||||||
max-height:1pt;
|
min-height: 0pt;
|
||||||
|
max-height: 1pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
QLabel#settingsLabel {
|
QLabel#settingsLabel {
|
||||||
font-size: 32px;
|
font-size: 32px;
|
||||||
line-height: 44px;
|
line-height: 44px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|
||||||
}
|
}
|
||||||
QSpinBox, QLabel#downloadDirPath{
|
QSpinBox,
|
||||||
|
QLabel#downloadDirPath {
|
||||||
font: bold 12pt "Cantarell";
|
font: bold 12pt "Cantarell";
|
||||||
}
|
}
|
||||||
QPushButton {
|
QPushButton {
|
||||||
background-color: white;
|
background-color: white;
|
||||||
color: #3366cc;;
|
color: #3366cc;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
font:bold;
|
font: bold;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
QPushButton:hover {
|
QPushButton:hover {
|
||||||
background-color: #3366cc;;
|
background-color: #3366cc;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
function onDownloadDirChanged (downloadDir) {
|
|
||||||
app.downloadDir = downloadDir;
|
|
||||||
}
|
|
||||||
|
|
||||||
function validPort (port) {
|
|
||||||
return /^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/.test(port);
|
|
||||||
}
|
|
||||||
|
|
||||||
function setTranslations(translations) {
|
|
||||||
app.translations = createDict(TRANSLATION_KEYS, translations);
|
|
||||||
}
|
|
||||||
|
|
||||||
const TRANSLATION_KEYS = ["settings",
|
|
||||||
"port-for-local-kiwix-server-setting",
|
|
||||||
"zoom-level-setting",
|
|
||||||
"download-directory-setting",
|
|
||||||
"reset",
|
|
||||||
"browse",
|
|
||||||
"invalid-port"];
|
|
||||||
|
|
||||||
function init() {
|
|
||||||
new QWebChannel(qt.webChannelTransport, function(channel) {
|
|
||||||
settingsManager = channel.objects.settingsManager;
|
|
||||||
app = new Vue({
|
|
||||||
el: "#settings",
|
|
||||||
data: {
|
|
||||||
settingsManager: settingsManager,
|
|
||||||
kiwixServerPort: settingsManager.kiwixServerPort,
|
|
||||||
zoomFactor: Math.floor(settingsManager.zoomFactor * 100),
|
|
||||||
downloadDir: settingsManager.downloadDir,
|
|
||||||
translations:{}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
gt : function(key) {
|
|
||||||
return this.translations[key];
|
|
||||||
},
|
|
||||||
setPort : function() {
|
|
||||||
if (!validPort(this.kiwixServerPort)) {
|
|
||||||
alert(this.gt("invalid-port"));
|
|
||||||
this.kiwixServerPort = settingsManager.kiwixServerPort;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
settingsManager.setKiwixServerPort(this.kiwixServerPort);
|
|
||||||
},
|
|
||||||
setZoomFactor : function() {
|
|
||||||
this.zoomFactor = (this.zoomFactor < 30) ? 30 : this.zoomFactor;
|
|
||||||
this.zoomFactor = (this.zoomFactor > 500) ? 500 : this.zoomFactor;
|
|
||||||
settingsManager.setZoomFactor(this.zoomFactor / 100);
|
|
||||||
},
|
|
||||||
resetDownloadDir : function() {
|
|
||||||
settingsManager.resetDownloadDir();
|
|
||||||
},
|
|
||||||
browseDownloadDir : function() {
|
|
||||||
settingsManager.browseDownloadDir();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
settingsManager.downloadDirChanged.connect(onDownloadDirChanged)
|
|
||||||
settingsManager.getTranslations(TRANSLATION_KEYS, setTranslations);
|
|
||||||
});
|
|
||||||
}
|
|
@ -1,7 +1,5 @@
|
|||||||
<RCC>
|
<RCC>
|
||||||
<qresource prefix="/">
|
<qresource prefix="/">
|
||||||
<file>texts/_settingsManager.html</file>
|
|
||||||
<file>css/_settingsManager.css</file>
|
<file>css/_settingsManager.css</file>
|
||||||
<file>js/_settingsManager.js</file>
|
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<script src="qrc:///js/vue.js"></script>
|
|
||||||
<script src="qrc:///qtwebchannel/qwebchannel.js"></script>
|
|
||||||
<script src="qrc:///js/_settingsManager.js"></script>
|
|
||||||
<script src="qrc:///js/tools.js"></script>
|
|
||||||
<link rel="stylesheet" type="text/css" href="qrc:///css/_settingsManager.css"/>
|
|
||||||
</head>
|
|
||||||
<body onload="init()">
|
|
||||||
<div id="settings">
|
|
||||||
<div id="header">
|
|
||||||
<h1>{{ gt("settings") }}</h1>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<label>{{ gt("port-for-local-kiwix-server-setting") }}</label>
|
|
||||||
<input type="number" min="1" max="65535" v-on:change="setPort()" v-model="kiwixServerPort">
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<label>{{ gt("zoom-level-setting") }}</label>
|
|
||||||
<div class="percentage-symbol">
|
|
||||||
<input type="number" step="10" min="30" max="500" v-on:change="setZoomFactor()" v-model="zoomFactor" >
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<label>{{ gt("download-directory-setting") }}</label>
|
|
||||||
<span id="download_dir"><span>{{ downloadDir }}</span></span>
|
|
||||||
<input type="button" :value="gt('reset')" v-on:click="resetDownloadDir()">
|
|
||||||
<input type="button" :value="gt('browse')" v-on:click="browseDownloadDir()">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</body></html>
|
|
||||||
|
|
@ -7,19 +7,23 @@
|
|||||||
SettingsManager::SettingsManager(QObject *parent)
|
SettingsManager::SettingsManager(QObject *parent)
|
||||||
: QObject(parent),
|
: QObject(parent),
|
||||||
m_settings("Kiwix", "Kiwix-desktop"),
|
m_settings("Kiwix", "Kiwix-desktop"),
|
||||||
m_settingsViewDisplayed(false)
|
m_view(nullptr)
|
||||||
{
|
{
|
||||||
initSettings();
|
initSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
SettingsView* SettingsManager::getView()
|
SettingsView* SettingsManager::getView()
|
||||||
{
|
{
|
||||||
|
if (m_view == nullptr) {
|
||||||
auto view = new SettingsView();
|
auto view = new SettingsView();
|
||||||
view->init(m_kiwixServerPort, m_zoomFactor * 100, m_downloadDir);
|
view->init(m_kiwixServerPort, m_zoomFactor * 100, m_downloadDir);
|
||||||
connect(view, &SettingsView::serverPortChanged, this, &SettingsManager::setKiwixServerPort);
|
connect(view, &SettingsView::serverPortChanged, this, &SettingsManager::setKiwixServerPort);
|
||||||
connect(view, &SettingsView::downloadDirChanged, this, &SettingsManager::setDownloadDir);
|
connect(view, &SettingsView::downloadDirChanged, this, &SettingsManager::setDownloadDir);
|
||||||
connect(view, &SettingsView::zoomFactorChanged, this, &SettingsManager::setZoom);
|
connect(view, &SettingsView::zoomFactorChanged, this, &SettingsManager::setZoom);
|
||||||
return view;
|
connect(view, &QObject::destroyed, this, [=]() { m_view = nullptr; });
|
||||||
|
m_view = view;
|
||||||
|
}
|
||||||
|
return m_view;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsManager::setSettings(const QString &key, const QVariant &value)
|
void SettingsManager::setSettings(const QString &key, const QVariant &value)
|
||||||
@ -78,50 +82,6 @@ bool SettingsManager::setDownloadDir(QString downloadDir)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SettingsManager::confirmDialogDownloadDir(const QString& dir)
|
|
||||||
{
|
|
||||||
auto text = gt("download-dir-dialog-msg");
|
|
||||||
text = text.replace("{{DIRECTORY}}", dir);
|
|
||||||
QMessageBox msgBox(
|
|
||||||
QMessageBox::Question, //Icon
|
|
||||||
gt("download-dir-dialog-title"), //Title
|
|
||||||
text, //Text
|
|
||||||
QMessageBox::Ok | QMessageBox::Cancel //Buttons
|
|
||||||
);
|
|
||||||
msgBox.setDefaultButton(QMessageBox::Ok);
|
|
||||||
|
|
||||||
int ret = msgBox.exec();
|
|
||||||
return (ret == QMessageBox::Ok);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SettingsManager::resetDownloadDir()
|
|
||||||
{
|
|
||||||
auto dir = QString::fromStdString(kiwix::getDataDirectory());
|
|
||||||
if (dir == m_downloadDir) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (confirmDialogDownloadDir(dir)) {
|
|
||||||
setDownloadDir(dir);
|
|
||||||
emit(downloadDirChanged(dir));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SettingsManager::browseDownloadDir()
|
|
||||||
{
|
|
||||||
QString dir = QFileDialog::getExistingDirectory(KiwixApp::instance()->getMainWindow(),
|
|
||||||
gt("browse-directory"),
|
|
||||||
m_downloadDir,
|
|
||||||
QFileDialog::ShowDirsOnly);
|
|
||||||
if (dir == m_downloadDir || dir.isEmpty()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (confirmDialogDownloadDir(dir)) {
|
|
||||||
setDownloadDir(dir);
|
|
||||||
emit(downloadDirChanged(dir));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList SettingsManager::getTranslations(const QStringList &keys)
|
QStringList SettingsManager::getTranslations(const QStringList &keys)
|
||||||
{
|
{
|
||||||
QStringList translations;
|
QStringList translations;
|
||||||
|
@ -17,7 +17,6 @@ public:
|
|||||||
virtual ~SettingsManager() {};
|
virtual ~SettingsManager() {};
|
||||||
|
|
||||||
SettingsView* getView();
|
SettingsView* getView();
|
||||||
bool isSettingsViewdisplayed() { return m_settingsViewDisplayed; };
|
|
||||||
void setSettings(const QString &key, const QVariant &value);
|
void setSettings(const QString &key, const QVariant &value);
|
||||||
void deleteSettings(const QString &key);
|
void deleteSettings(const QString &key);
|
||||||
bool settingsExists(const QString &key);
|
bool settingsExists(const QString &key);
|
||||||
@ -32,12 +31,9 @@ public slots:
|
|||||||
qreal getZoomFactor() { return m_zoomFactor; };
|
qreal getZoomFactor() { return m_zoomFactor; };
|
||||||
bool setDownloadDir(QString downloadDir);
|
bool setDownloadDir(QString downloadDir);
|
||||||
QString getDownloadDir() { return m_downloadDir; }
|
QString getDownloadDir() { return m_downloadDir; }
|
||||||
void resetDownloadDir();
|
|
||||||
void browseDownloadDir();
|
|
||||||
void setZoom(int factor);
|
void setZoom(int factor);
|
||||||
private:
|
private:
|
||||||
void initSettings();
|
void initSettings();
|
||||||
bool confirmDialogDownloadDir(const QString& dir);
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void portChanged(int port);
|
void portChanged(int port);
|
||||||
@ -46,7 +42,7 @@ signals:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QSettings m_settings;
|
QSettings m_settings;
|
||||||
bool m_settingsViewDisplayed;
|
SettingsView *m_view;
|
||||||
int m_kiwixServerPort;
|
int m_kiwixServerPort;
|
||||||
qreal m_zoomFactor;
|
qreal m_zoomFactor;
|
||||||
QString m_downloadDir;
|
QString m_downloadDir;
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
#include <QToolTip>
|
#include <QToolTip>
|
||||||
#include <QCursor>
|
#include <QCursor>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
|
||||||
#define QUITIFNULL(VIEW) if (nullptr==(VIEW)) { return; }
|
#define QUITIFNULL(VIEW) if (nullptr==(VIEW)) { return; }
|
||||||
#define CURRENTIFNULL(VIEW) if(nullptr==VIEW) { VIEW = currentZimView();}
|
#define CURRENTIFNULL(VIEW) if(nullptr==VIEW) { VIEW = currentZimView();}
|
||||||
|
|
||||||
@ -56,7 +55,7 @@ TabBar::TabBar(QWidget *parent) :
|
|||||||
connect(app->getAction(KiwixApp::SettingAction), &QAction::triggered,
|
connect(app->getAction(KiwixApp::SettingAction), &QAction::triggered,
|
||||||
this, [=]() {
|
this, [=]() {
|
||||||
for (int i = 0 ; i < mp_stackedWidget->count(); i++) {
|
for (int i = 0 ; i < mp_stackedWidget->count(); i++) {
|
||||||
if (qobject_cast<SettingsView*>(mp_stackedWidget->widget(i))) {
|
if (mp_stackedWidget->widget(i) == KiwixApp::instance()->getSettingsManager()->getView()) {
|
||||||
setCurrentIndex(i);
|
setCurrentIndex(i);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user