diff options
author | Saturneric <[email protected]> | 2021-05-12 02:14:58 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2021-05-12 02:14:58 +0000 |
commit | 26691b14d7d3294769c1cb0d0e099efd75dcc6c6 (patch) | |
tree | 7e16cb949955e635bada530ba7fd23a43ef8e4bb /src/ui/HelpPage.cpp | |
parent | Srouce Files Tidy and Reform (diff) | |
download | GpgFrontend-26691b14d7d3294769c1cb0d0e099efd75dcc6c6.tar.gz GpgFrontend-26691b14d7d3294769c1cb0d0e099efd75dcc6c6.zip |
File Structure Modified.
Change Headers and Source Files Name.
Modified CMake Structure.
Diffstat (limited to 'src/ui/HelpPage.cpp')
-rw-r--r-- | src/ui/HelpPage.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/ui/HelpPage.cpp b/src/ui/HelpPage.cpp new file mode 100644 index 00000000..6639574c --- /dev/null +++ b/src/ui/HelpPage.cpp @@ -0,0 +1,82 @@ +/* + * helppage.cpp + * + * Copyright 2008 gpg4usb-team <[email protected]> + * + * This file is part of gpg4usb. + * + * Gpg4usb 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. + * + * Gpg4usb 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 gpg4usb. If not, see <http://www.gnu.org/licenses/> + */ + +#include "ui/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); + //setAttribute(Qt::WA_DeleteOnClose); + //browser->setSource(QUrl::fromLocalFile(path)); + + 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; +} |