feat(ui): add tab to show gnupg info

This commit is contained in:
Saturneric 2022-07-23 20:18:23 +08:00
parent da9494c35e
commit 61cc4ed27f
9 changed files with 147 additions and 12 deletions

View File

@ -41,6 +41,7 @@
<file alias="format-line-spacing-double.png">resource/icons/format-line-spacing-double.png</file>
<file alias="format-line-spacing-normal.png">resource/icons/format-line-spacing-normal.png</file>
<file alias="format-line-spacing-triple.png">resource/icons/format-line-spacing-triple.png</file>
<file alias="gnupg.png">resource/icons/gnupg.png</file>
<file alias="gpgfrontend.png">resource/icons/gpgfrontend.png</file>
<file alias="importance.png">resource/icons/importance.png</file>
<file alias="importkey_editor.png">resource/icons/importkey_editor.png</file>

BIN
resource/icons/gnupg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -93,7 +93,9 @@ GpgContext::GpgContext(const GpgContextInitArgs &args) : args_(args) {
: engine_info->file_name)
<< std::string(engine_info->home_dir == nullptr
? "null"
: engine_info->home_dir);
: engine_info->home_dir)
<< std::string(engine_info->version ? "null"
: engine_info->version);
switch (engine_info->protocol) {
case GPGME_PROTOCOL_OpenPGP:
@ -110,6 +112,7 @@ GpgContext::GpgContext(const GpgContextInitArgs &args) : args_(args) {
info_.GpgConfPath = engine_info->file_name;
break;
case GPGME_PROTOCOL_ASSUAN:
info_.AssuanPath = engine_info->file_name;
break;
case GPGME_PROTOCOL_G13:
break;

View File

@ -42,6 +42,7 @@ class GpgInfo {
std::string DatabasePath; ///<
std::string GnupgVersion; ///<
std::string GpgConfPath; ///<
std::string AssuanPath; ///<
std::string CMSPath; ///<
std::string GpgMEVersion; ///<
};

View File

@ -31,6 +31,7 @@
#include "GpgFrontendBuildInfo.h"
#include "core/function/GlobalSettingStation.h"
#include "core/thread/TaskRunnerGetter.h"
#include "ui/dialog/help/GnupgTab.h"
#include "ui/thread/VersionCheckTask.h"
namespace GpgFrontend::UI {
@ -39,27 +40,29 @@ AboutDialog::AboutDialog(int defaultIndex, QWidget* parent)
: GeneralDialog(typeid(AboutDialog).name(), parent) {
this->setWindowTitle(QString(_("About")) + " " + qApp->applicationName());
auto* tabWidget = new QTabWidget;
auto* infoTab = new InfoTab();
auto* translatorsTab = new TranslatorsTab();
auto* tab_widget = new QTabWidget;
auto* info_tab = new InfoTab();
auto* gnupg_tab = new GnupgTab();
auto* translators_tab = new TranslatorsTab();
update_tab_ = new UpdateTab();
tabWidget->addTab(infoTab, _("About Software"));
tabWidget->addTab(translatorsTab, _("Translators"));
tabWidget->addTab(update_tab_, _("Update"));
tab_widget->addTab(info_tab, _("About GpgFrontend"));
tab_widget->addTab(gnupg_tab, _("GnuPG"));
tab_widget->addTab(translators_tab, _("Translators"));
tab_widget->addTab(update_tab_, _("Update"));
connect(tabWidget, &QTabWidget::currentChanged, this,
connect(tab_widget, &QTabWidget::currentChanged, this,
[&](int index) { LOG(INFO) << "Current Index" << index; });
if (defaultIndex < tabWidget->count() && defaultIndex >= 0) {
tabWidget->setCurrentIndex(defaultIndex);
if (defaultIndex < tab_widget->count() && defaultIndex >= 0) {
tab_widget->setCurrentIndex(defaultIndex);
}
auto* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok);
connect(buttonBox, &QDialogButtonBox::accepted, this, &AboutDialog::close);
auto* mainLayout = new QVBoxLayout;
mainLayout->addWidget(tabWidget);
mainLayout->addWidget(tab_widget);
mainLayout->addWidget(buttonBox);
setLayout(mainLayout);

View File

@ -0,0 +1,66 @@
/*
* Copyright (c) 2022. 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<eric@bktus.com> starting on May 12, 2021.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
//
// Created by eric on 2022/7/23.
//
#include "GnupgTab.h"
GpgFrontend::UI::GnupgTab::GnupgTab(QWidget* parent) : QWidget(parent) {
GpgContext& ctx = GpgContext::GetInstance();
auto info = ctx.GetInfo();
auto* pixmap = new QPixmap(":gnupg.png");
auto* text = new QString(
"<center><h2>" + QString(_("GnuPG")) + "</h2></center>" + "<center><b>" +
QString(_("GnuPG Version")) + ": " +
QString::fromStdString(info.GnupgVersion) + "</b></center>" +
"<center><b>" + +"</b></center>" + "<center>" +
QString(_("GpgME Version")) + ": " +
QString::fromStdString(info.GpgMEVersion) + "</center><br /><hr />" +
"<h3>" + QString(_("PATHs")) + "</h3>" + QString(_("GpgConf")) + ": " +
QString::fromStdString(info.GpgConfPath) + "<br />" +
QString(_("GnuPG")) + ": " + QString::fromStdString(info.AppPath) +
"<br />" + QString(_("CMS")) + ": " +
QString::fromStdString(info.CMSPath) + "<br />");
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);
}

View File

@ -0,0 +1,53 @@
/*
* Copyright (c) 2022. 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<eric@bktus.com> starting on May 12, 2021.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
//
// Created by eric on 2022/7/23.
//
#ifndef GPGFRONTEND_GNUPGTAB_H
#define GPGFRONTEND_GNUPGTAB_H
#include "core/GpgContext.h"
#include "ui/GpgFrontendUI.h"
namespace GpgFrontend::UI{
class GnupgTab: public QWidget {
Q_OBJECT
public:
/**
* @brief Construct a new Info Tab object
*
* @param parent
*/
explicit GnupgTab(QWidget* parent = nullptr);
};
}
#endif // GPGFRONTEND_GNUPGTAB_H

View File

@ -387,6 +387,7 @@ class MainWindow : public GeneralMainWindow {
QAction* about_act_{}; ///< Action to open about dialog
QAction* check_update_act_{}; ///< Action to open about dialog
QAction* translate_act_{}; ///< Action to open about dialog
QAction* gnupg_act_{}; ///< Action to open about dialog
QAction* open_settings_act_{}; ///< Action to open settings dialog
QAction* show_key_details_act_{}; ///< Action to open key-details dialog
QAction* start_wizard_act_{}; ///< Action to open the wizard

View File

@ -251,11 +251,17 @@ void MainWindow::create_actions() {
connect(about_act_, &QAction::triggered, this,
[=]() { new AboutDialog(0, this); });
gnupg_act_ = new QAction(_("GnuPG"), this);
gnupg_act_->setIcon(QIcon(":help.png"));
gnupg_act_->setToolTip(_("Information about Gnupg"));
connect(gnupg_act_, &QAction::triggered, this,
[=]() { new AboutDialog(1, this); });
translate_act_ = new QAction(_("Translate"), this);
translate_act_->setIcon(QIcon(":help.png"));
translate_act_->setToolTip(_("Information about translation"));
connect(translate_act_, &QAction::triggered, this,
[=]() { new AboutDialog(1, this); });
[=]() { new AboutDialog(2, this); });
/*
* Check Update Menu
@ -377,6 +383,7 @@ void MainWindow::create_menus() {
help_menu_->addSeparator();
help_menu_->addAction(check_update_act_);
help_menu_->addAction(translate_act_);
help_menu_->addAction(gnupg_act_);
help_menu_->addAction(about_act_);
}