diff options
author | Saturneric <[email protected]> | 2021-06-25 07:04:22 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2021-06-25 07:04:22 +0000 |
commit | 6f5d4672972c87486f5a34d6dc8b0c8668f9a2a4 (patch) | |
tree | 651bc6b2ac5ae26bbb0bee334630a786bef9bc29 /src/ui/widgets/HelpPage.cpp | |
parent | Updated Document; (diff) | |
download | GpgFrontend-6f5d4672972c87486f5a34d6dc8b0c8668f9a2a4.tar.gz GpgFrontend-6f5d4672972c87486f5a34d6dc8b0c8668f9a2a4.zip |
Update Project Structure;
Update Version;
Add FilePage;
Diffstat (limited to 'src/ui/widgets/HelpPage.cpp')
-rw-r--r-- | src/ui/widgets/HelpPage.cpp | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/ui/widgets/HelpPage.cpp b/src/ui/widgets/HelpPage.cpp new file mode 100644 index 00000000..e018da81 --- /dev/null +++ b/src/ui/widgets/HelpPage.cpp @@ -0,0 +1,83 @@ +/** + * This file is part of GPGFrontend. + * + * GPGFrontend is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Foobar is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see <https://www.gnu.org/licenses/>. + * + * The initial version of the source code is inherited from gpg4usb-team. + * Their source code version also complies with GNU General Public License. + * + * The source code version of this software was modified and released + * by Saturneric<[email protected]> starting on May 12, 2021. + * + */ + +#include "ui/widgets/HelpPage.h" + +#include <utility> + +HelpPage::HelpPage(const QString &path, QWidget *parent) : + QWidget(parent) { + + browser = new QTextBrowser(); + auto *mainLayout = new QVBoxLayout(); + mainLayout->setSpacing(0); + mainLayout->addWidget(browser); + mainLayout->setContentsMargins(0, 0, 0, 0); + setLayout(mainLayout); + + connect(browser, SIGNAL(anchorClicked(QUrl)), this, SLOT(slotOpenUrl(QUrl))); + browser->setOpenLinks(false); + browser->setSource(localizedHelp(QUrl(path))); + browser->setFocus(); + +} + +void HelpPage::slotOpenUrl(const QUrl &url) { + browser->setSource(localizedHelp(url)); +}; + +/** + * @brief HelpPage::localizedHelp + * check if the requested file is also available with the locale, + * e.g. return index.de.html if index.html was requested but the + * locale is de and index.de.html is available + * @param url + * @return + */ +QUrl HelpPage::localizedHelp(const QUrl &url) { + QString path = url.toLocalFile(); + QString filename = path.mid(path.lastIndexOf("/") + 1); + QString filepath = path.left(path.lastIndexOf("/") + 1); + QStringList fileparts = filename.split("."); + + //QSettings settings; + QString lang = QSettings().value("int/lang", QLocale::system().name()).toString(); + if (lang.isEmpty()) { + lang = QLocale::system().name(); + } + + fileparts.insert(1, lang); + QString langfile = filepath + fileparts.join("."); + + if (QFile(QUrl(langfile).toLocalFile()).exists()) { + return langfile; + } else { + return path; + } + +} + +QTextBrowser *HelpPage::getBrowser() { + return browser; +} |