mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-08-03 20:56:49 -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{
|
||||
max-width:500;
|
||||
QWidget#widget {
|
||||
max-width: 500;
|
||||
}
|
||||
|
||||
QLabel,
|
||||
@ -10,30 +10,31 @@ QSpinBox {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
QFrame[frameShape="4"] { /*frameShape 4 is HLine */
|
||||
border:1px solid #eaecf0;
|
||||
min-height:0pt;
|
||||
max-height:1pt;
|
||||
QFrame[frameShape="4"] {
|
||||
/*frameShape 4 is HLine */
|
||||
border: 1px solid #eaecf0;
|
||||
min-height: 0pt;
|
||||
max-height: 1pt;
|
||||
}
|
||||
|
||||
QLabel#settingsLabel {
|
||||
font-size: 32px;
|
||||
line-height: 44px;
|
||||
font-weight: bold;
|
||||
|
||||
}
|
||||
QSpinBox, QLabel#downloadDirPath{
|
||||
QSpinBox,
|
||||
QLabel#downloadDirPath {
|
||||
font: bold 12pt "Cantarell";
|
||||
}
|
||||
QPushButton {
|
||||
background-color: white;
|
||||
color: #3366cc;;
|
||||
color: #3366cc;
|
||||
padding: 4px;
|
||||
font:bold;
|
||||
font: bold;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
QPushButton:hover {
|
||||
background-color: #3366cc;;
|
||||
background-color: #3366cc;
|
||||
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>
|
||||
<qresource prefix="/">
|
||||
<file>texts/_settingsManager.html</file>
|
||||
<file>css/_settingsManager.css</file>
|
||||
<file>js/_settingsManager.js</file>
|
||||
</qresource>
|
||||
</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)
|
||||
: QObject(parent),
|
||||
m_settings("Kiwix", "Kiwix-desktop"),
|
||||
m_settingsViewDisplayed(false)
|
||||
m_view(nullptr)
|
||||
{
|
||||
initSettings();
|
||||
}
|
||||
|
||||
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);
|
||||
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)
|
||||
@ -78,50 +82,6 @@ bool SettingsManager::setDownloadDir(QString downloadDir)
|
||||
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 translations;
|
||||
|
@ -17,7 +17,6 @@ public:
|
||||
virtual ~SettingsManager() {};
|
||||
|
||||
SettingsView* getView();
|
||||
bool isSettingsViewdisplayed() { return m_settingsViewDisplayed; };
|
||||
void setSettings(const QString &key, const QVariant &value);
|
||||
void deleteSettings(const QString &key);
|
||||
bool settingsExists(const QString &key);
|
||||
@ -32,12 +31,9 @@ public slots:
|
||||
qreal getZoomFactor() { return m_zoomFactor; };
|
||||
bool setDownloadDir(QString downloadDir);
|
||||
QString getDownloadDir() { return m_downloadDir; }
|
||||
void resetDownloadDir();
|
||||
void browseDownloadDir();
|
||||
void setZoom(int factor);
|
||||
private:
|
||||
void initSettings();
|
||||
bool confirmDialogDownloadDir(const QString& dir);
|
||||
|
||||
signals:
|
||||
void portChanged(int port);
|
||||
@ -46,7 +42,7 @@ signals:
|
||||
|
||||
private:
|
||||
QSettings m_settings;
|
||||
bool m_settingsViewDisplayed;
|
||||
SettingsView *m_view;
|
||||
int m_kiwixServerPort;
|
||||
qreal m_zoomFactor;
|
||||
QString m_downloadDir;
|
||||
|
@ -8,7 +8,6 @@
|
||||
#include <QToolTip>
|
||||
#include <QCursor>
|
||||
#include <QPainter>
|
||||
|
||||
#define QUITIFNULL(VIEW) if (nullptr==(VIEW)) { return; }
|
||||
#define CURRENTIFNULL(VIEW) if(nullptr==VIEW) { VIEW = currentZimView();}
|
||||
|
||||
@ -56,7 +55,7 @@ TabBar::TabBar(QWidget *parent) :
|
||||
connect(app->getAction(KiwixApp::SettingAction), &QAction::triggered,
|
||||
this, [=]() {
|
||||
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);
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user