diff options
Diffstat (limited to 'src/ui/help')
-rw-r--r-- | src/ui/help/AboutDialog.cpp | 255 | ||||
-rw-r--r-- | src/ui/help/AboutDialog.h | 145 |
2 files changed, 0 insertions, 400 deletions
diff --git a/src/ui/help/AboutDialog.cpp b/src/ui/help/AboutDialog.cpp deleted file mode 100644 index e8fbeb1b..00000000 --- a/src/ui/help/AboutDialog.cpp +++ /dev/null @@ -1,255 +0,0 @@ -/** - * Copyright (C) 2021 Saturneric - * - * 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. - * - * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>. - * - * The initial version of the source code is inherited from - * the gpg4usb project, which is under GPL-3.0-or-later. - * - * All the source code of GpgFrontend was modified and released by - * Saturneric<[email protected]> starting on May 12, 2021. - * - * SPDX-License-Identifier: GPL-3.0-or-later - * - */ - -#include "ui/help/AboutDialog.h" - -#include "GpgFrontendBuildInfo.h" -#include "core/function/GlobalSettingStation.h" -#include "core/thread/TaskRunnerGetter.h" -#include "ui/thread/VersionCheckTask.h" - -namespace GpgFrontend::UI { - -AboutDialog::AboutDialog(int defaultIndex, QWidget* parent) : QDialog(parent) { - this->setWindowTitle(QString(_("About")) + " " + qApp->applicationName()); - - auto* tabWidget = new QTabWidget; - auto* infoTab = new InfoTab(); - auto* translatorsTab = new TranslatorsTab(); - update_tab_ = new UpdateTab(); - - tabWidget->addTab(infoTab, _("About Software")); - tabWidget->addTab(translatorsTab, _("Translators")); - tabWidget->addTab(update_tab_, _("Update")); - - connect(tabWidget, &QTabWidget::currentChanged, this, - [&](int index) { LOG(INFO) << "Current Index" << index; }); - - if (defaultIndex < tabWidget->count() && defaultIndex >= 0) { - tabWidget->setCurrentIndex(defaultIndex); - } - - auto* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok); - connect(buttonBox, &QDialogButtonBox::accepted, this, &AboutDialog::close); - - auto* mainLayout = new QVBoxLayout; - mainLayout->addWidget(tabWidget); - mainLayout->addWidget(buttonBox); - setLayout(mainLayout); - - this->resize(450, 580); - this->setMinimumWidth(450); - this->show(); -} - -void AboutDialog::showEvent(QShowEvent* ev) { - QDialog::showEvent(ev); - update_tab_->getLatestVersion(); -} - -InfoTab::InfoTab(QWidget* parent) : QWidget(parent) { - auto* pixmap = new QPixmap(":gpgfrontend-logo.png"); - auto* text = new QString( - "<center><h2>" + qApp->applicationName() + "</h2></center>" + - "<center><b>" + qApp->applicationVersion() + "</b></center>" + - "<center>" + GIT_VERSION + "</center>" + "<br><center>" + - _("GpgFrontend is an easy-to-use, compact, cross-platform, " - "and installation-free gpg front-end tool." - "It visualizes most of the common operations of gpg commands." - "It's licensed under the GPL v3") + - "<br><br>" - "<b>" + - _("Developer:") + "</b><br>" + "Saturneric" + "<br><br>" + - _("If you have any questions or suggestions, raise an issue at") + - "<br/>" - " <a href=\"https://github.com/saturneric/GpgFrontend\">GitHub</a> " + - _("or send a mail to my mailing list at") + " <a " + - "href=\"mailto:[email protected]\">[email protected]</a>." + "<br><br> " + - _("Built with Qt") + " " + qVersion() + " " + _("and GPGME") + " " + - GpgFrontend::GpgContext::GetInstance().GetInfo().GpgMEVersion.c_str() + - "<br>" + _("Built at") + " " + BUILD_TIMESTAMP + "</center>"); - - auto* layout = new QGridLayout(); - auto* pixmapLabel = new QLabel(); - pixmapLabel->setPixmap(*pixmap); - layout->addWidget(pixmapLabel, 0, 0, 1, -1, Qt::AlignCenter); - auto* aboutLabel = new QLabel(); - aboutLabel->setText(*text); - aboutLabel->setWordWrap(true); - aboutLabel->setOpenExternalLinks(true); - layout->addWidget(aboutLabel, 1, 0, 1, -1); - layout->addItem( - new QSpacerItem(20, 10, QSizePolicy::Minimum, QSizePolicy::Fixed), 2, 1, - 1, 1); - - setLayout(layout); -} - -TranslatorsTab::TranslatorsTab(QWidget* parent) : QWidget(parent) { - QFile translators_qfile; - auto translators_file = - GlobalSettingStation::GetInstance().GetResourceDir() / "TRANSLATORS"; - translators_qfile.setFileName(translators_file.u8string().c_str()); -#ifdef LINUX - if (!translators_qfile.exists()) { - translators_qfile.setFileName("/usr/local/share/GpgFrontend/TRANSLATORS"); - } -#endif - - translators_qfile.open(QIODevice::ReadOnly); - QByteArray in_buffer = translators_qfile.readAll(); - - auto* label = new QLabel(in_buffer); - - auto* main_layout = new QVBoxLayout(this); - main_layout->addWidget(label); - main_layout->addStretch(); - - auto notice_label = new QLabel( - _("If you think there are any problems with the translation, why not " - "participate in the translation work? If you want to participate, " - "please " - "read the document or contact me via email."), - this); - notice_label->setWordWrap(true); - main_layout->addWidget(notice_label); - - setLayout(main_layout); -} - -UpdateTab::UpdateTab(QWidget* parent) : QWidget(parent) { - auto* pixmap = new QPixmap(":gpgfrontend-logo.png"); - auto* layout = new QGridLayout(); - auto* pixmap_label = new QLabel(); - pixmap_label->setPixmap(*pixmap); - layout->addWidget(pixmap_label, 0, 0, 1, -1, Qt::AlignCenter); - - current_version_ = "v" + QString::number(VERSION_MAJOR) + "." + - QString::number(VERSION_MINOR) + "." + - QString::number(VERSION_PATCH); - - auto tips_label = new QLabel(); - tips_label->setText( - "<center>" + - QString(_("It is recommended that you always check the version " - "of GpgFrontend and upgrade to the latest version.")) + - "</center><center>" + - _("New versions not only represent new features, but " - "also often represent functional and security fixes.") + - "</center>"); - tips_label->setWordWrap(true); - - current_version_label_ = new QLabel(); - current_version_label_->setText("<center>" + QString(_("Current Version")) + - _(": ") + "<b>" + current_version_ + - "</b></center>"); - current_version_label_->setWordWrap(true); - - latest_version_label_ = new QLabel(); - latest_version_label_->setWordWrap(true); - - upgrade_label_ = new QLabel(); - upgrade_label_->setWordWrap(true); - upgrade_label_->setOpenExternalLinks(true); - upgrade_label_->setHidden(true); - - pb_ = new QProgressBar(); - pb_->setRange(0, 0); - pb_->setTextVisible(false); - - layout->addWidget(tips_label, 1, 0, 1, -1); - layout->addWidget(current_version_label_, 2, 0, 1, -1); - layout->addWidget(latest_version_label_, 3, 0, 1, -1); - layout->addWidget(upgrade_label_, 4, 0, 1, -1); - layout->addWidget(pb_, 5, 0, 1, -1); - layout->addItem( - new QSpacerItem(20, 10, QSizePolicy::Minimum, QSizePolicy::Fixed), 2, 1, - 1, 1); - - setLayout(layout); -} - -void UpdateTab::getLatestVersion() { - this->pb_->setHidden(false); - - LOG(INFO) << _("try to get latest version"); - - auto* version_task = new VersionCheckTask(); - - connect(version_task, &VersionCheckTask::SignalUpgradeVersion, this, - &UpdateTab::slot_show_version_status); - - Thread::TaskRunnerGetter::GetInstance() - .GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_Network) - ->PostTask(version_task); -} - -void UpdateTab::slot_show_version_status(const SoftwareVersion& version) { - this->pb_->setHidden(true); - latest_version_label_->setText( - "<center><b>" + QString(_("Latest Version From Github")) + ": " + - version.latest_version.c_str() + "</b></center>"); - - if (version.NeedUpgrade()) { - upgrade_label_->setText( - "<center>" + - QString(_("The current version is less than the latest version on " - "github.")) + - "</center><center>" + _("Please click") + - " <a " - "href=\"https://www.gpgfrontend.pub/#/downloads\">" + - _("Here") + "</a> " + _("to download the latest stable version.") + - "</center>"); - upgrade_label_->show(); - } else if (version.VersionWithDrawn()) { - upgrade_label_->setText( - "<center>" + - QString(_("This version has serious problems and has been withdrawn. " - "Please stop using it immediately.")) + - "</center><center>" + _("Please click") + - " <a " - "href=\"https://github.com/saturneric/GpgFrontend/releases\">" + - _("Here") + "</a> " + _("to download the latest stable version.") + - "</center>"); - upgrade_label_->show(); - } else if (!version.CurrentVersionReleased()) { - upgrade_label_->setText( - "<center>" + - QString(_("This version has not been released yet, it may be a beta " - "version. If you are not a tester and care about version " - "stability, please do not use this version.")) + - "</center><center>" + _("Please click") + - " <a " - "href=\"https://www.gpgfrontend.pub/#/downloads\">" + - _("Here") + "</a> " + _("to download the latest stable version.") + - "</center>"); - upgrade_label_->show(); - } -} - -} // namespace GpgFrontend::UI diff --git a/src/ui/help/AboutDialog.h b/src/ui/help/AboutDialog.h deleted file mode 100644 index 40d93f3e..00000000 --- a/src/ui/help/AboutDialog.h +++ /dev/null @@ -1,145 +0,0 @@ -/** - * Copyright (C) 2021 Saturneric - * - * 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. - * - * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>. - * - * The initial version of the source code is inherited from - * the gpg4usb project, which is under GPL-3.0-or-later. - * - * All the source code of GpgFrontend was modified and released by - * Saturneric<[email protected]> starting on May 12, 2021. - * - * SPDX-License-Identifier: GPL-3.0-or-later - * - */ - -#ifndef __ABOUTDIALOG_H__ -#define __ABOUTDIALOG_H__ - -#include "core/GpgContext.h" -#include "ui/GpgFrontendUI.h" -#include "ui/struct/SoftwareVersion.h" - -namespace GpgFrontend::UI { - -/** - * @brief Class containing the main tab of about dialog - * - */ -class InfoTab : public QWidget { - Q_OBJECT - - public: - /** - * @brief Construct a new Info Tab object - * - * @param parent - */ - explicit InfoTab(QWidget* parent = nullptr); -}; - -/** - * @brief Class containing the translator tab of about dialog - * - */ -class TranslatorsTab : public QWidget { - Q_OBJECT - - public: - /** - * @brief Construct a new Translators Tab object - * - * @param parent - */ - explicit TranslatorsTab(QWidget* parent = nullptr); -}; - -/** - * @brief Class containing the main tab of about dialog - * - */ -class UpdateTab : public QWidget { - Q_OBJECT - - QLabel* current_version_label_; ///< - QLabel* latest_version_label_; ///< - QLabel* upgrade_label_; ///< - QProgressBar* pb_; ///< - QString current_version_; ///< - QPushButton* download_button_; ///< - - public: - /** - * @brief Construct a new Update Tab object - * - * @param parent - */ - explicit UpdateTab(QWidget* parent = nullptr); - - /** - * @brief Get the Latest Version object - * - */ - void getLatestVersion(); - - private slots: - /** - * @brief - * - * @param version - */ - void slot_show_version_status(const SoftwareVersion& version); - - signals: - /** - * @brief - * - * @param data - */ - void SignalReplyFromUpdateServer(QByteArray data); -}; - -/** - * @brief Class for handling the about dialog - * - */ -class AboutDialog : public QDialog { - Q_OBJECT - - public: - /** - * @brief Construct a new About Dialog object - * - * @param defaultIndex - * @param parent - */ - explicit AboutDialog(int defaultIndex, QWidget* parent); - - protected: - /** - * @brief - * - * @param ev - */ - void showEvent(QShowEvent* ev) override; - - private: - UpdateTab* update_tab_; ///< -}; - -} // namespace GpgFrontend::UI - -#endif // __ABOUTDIALOG_H__ |