aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/dialog/help/GnupgTab.cpp
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2023-01-07 14:20:07 +0000
committerSaturneric <[email protected]>2023-01-07 14:20:07 +0000
commit225d435423888c38e0c75f63c1d7a41283839bd5 (patch)
tree4c575375dde858e9391e585f9bf47d65090c70cc /src/ui/dialog/help/GnupgTab.cpp
parentfix: continue to solve ubuntu 18.04 build issues (diff)
downloadGpgFrontend-225d435423888c38e0c75f63c1d7a41283839bd5.tar.gz
GpgFrontend-225d435423888c38e0c75f63c1d7a41283839bd5.zip
feat: add advanced gnupg operations
1.fix some issues 2. add advanced gnupg operations 3. add configurations information in Gnupg Help Tab
Diffstat (limited to 'src/ui/dialog/help/GnupgTab.cpp')
-rw-r--r--src/ui/dialog/help/GnupgTab.cpp123
1 files changed, 61 insertions, 62 deletions
diff --git a/src/ui/dialog/help/GnupgTab.cpp b/src/ui/dialog/help/GnupgTab.cpp
index 9d783367..8be35416 100644
--- a/src/ui/dialog/help/GnupgTab.cpp
+++ b/src/ui/dialog/help/GnupgTab.cpp
@@ -31,103 +31,102 @@
#include "GnupgTab.h"
-#include "easylogging++.h"
+#include "ui/UserInterfaceUtils.h"
#include "ui_GnuPGInfo.h"
GpgFrontend::UI::GnupgTab::GnupgTab(QWidget* parent)
- : QWidget(parent),
- ui_(std::make_shared<Ui_GnuPGInfo>()),
- gpgconf_process_(new QProcess(this)) {
+ : QWidget(parent), ui_(std::make_shared<Ui_GnuPGInfo>()) {
GpgContext& ctx = GpgContext::GetInstance();
- auto info = ctx.GetInfo();
+ auto info = ctx.GetInfo(false);
ui_->setupUi(this);
- QStringList column_titles;
- column_titles << _("Name") << _("Description") << _("Version") << _("Path");
+ QStringList components_column_titles;
+ components_column_titles << _("Name") << _("Description") << _("Version")
+ << _("Path");
- ui_->conponentDetailsTable->setColumnCount(column_titles.length());
- ui_->conponentDetailsTable->setHorizontalHeaderLabels(column_titles);
- ui_->conponentDetailsTable->horizontalHeader()->setStretchLastSection(false);
- ui_->conponentDetailsTable->setSelectionBehavior(
+ ui_->componentDetailsTable->setColumnCount(components_column_titles.length());
+ ui_->componentDetailsTable->setHorizontalHeaderLabels(
+ components_column_titles);
+ ui_->componentDetailsTable->horizontalHeader()->setStretchLastSection(false);
+ ui_->componentDetailsTable->setSelectionBehavior(
QAbstractItemView::SelectRows);
+ QStringList configurations_column_titles;
+ configurations_column_titles << _("Name") << _("Path");
+
+ ui_->configurationDetailsTable->setColumnCount(
+ configurations_column_titles.length());
+ ui_->configurationDetailsTable->setHorizontalHeaderLabels(
+ configurations_column_titles);
+ ui_->configurationDetailsTable->horizontalHeader()->setStretchLastSection(
+ false);
+ ui_->configurationDetailsTable->setSelectionBehavior(
+ QAbstractItemView::SelectRows);
+
+ ui_->softwareDetailsTableTitle->setText(_("Software Information"));
+
// tableitems not editable
- ui_->conponentDetailsTable->setEditTriggers(
+ ui_->componentDetailsTable->setEditTriggers(
QAbstractItemView::NoEditTriggers);
// no focus (rectangle around tableitems)
// may be it should focus on whole row
- ui_->conponentDetailsTable->setFocusPolicy(Qt::NoFocus);
- ui_->conponentDetailsTable->setAlternatingRowColors(true);
-
- gpgconf_process_->start(QString::fromStdString(info.GpgConfPath),
- QStringList() << "--list-components");
+ ui_->componentDetailsTable->setFocusPolicy(Qt::NoFocus);
+ ui_->componentDetailsTable->setAlternatingRowColors(true);
- connect(gpgconf_process_,
- qOverload<int, QProcess::ExitStatus>(&QProcess::finished), this,
- &GnupgTab::process_components_info);
+ process_software_info();
}
-void GpgFrontend::UI::GnupgTab::process_components_info(
- int exit_code, QProcess::ExitStatus exit_status) {
+void GpgFrontend::UI::GnupgTab::process_software_info() {
LOG(INFO) << "called";
- GpgContext& ctx = GpgContext::GetInstance();
- auto info = ctx.GetInfo();
+ auto ctx_info = GpgContext::GetInstance().GetInfo(true);
- std::vector<std::vector<std::string>> components_info = {
- {"gpgme", "GPG Made Easy", info.GpgMEVersion, "/"},
- {"gpgconf", "GPG Configure", "/", info.GpgConfPath},
+ ui_->componentDetailsTable->setRowCount(ctx_info.ComponentsInfo.size());
- };
+ int row = 0;
+ for (const auto& info : ctx_info.ComponentsInfo) {
+ if (info.second.size() != 3) continue;
- if (gpgconf_process_ != nullptr) {
- QString data = gpgconf_process_->readAllStandardOutput();
+ auto* tmp0 = new QTableWidgetItem(QString::fromStdString(info.first));
+ tmp0->setTextAlignment(Qt::AlignCenter);
+ ui_->componentDetailsTable->setItem(row, 0, tmp0);
- std::vector<std::string> line_split_list;
- boost::split(line_split_list, data.toStdString(), boost::is_any_of("\n"));
+ auto* tmp1 = new QTableWidgetItem(QString::fromStdString(info.second[0]));
+ tmp1->setTextAlignment(Qt::AlignCenter);
+ ui_->componentDetailsTable->setItem(row, 1, tmp1);
- for (const auto& line : line_split_list) {
- std::vector<std::string> info_split_list;
- boost::split(info_split_list, line, boost::is_any_of(":"));
- LOG(INFO) << "gpgconf info line" << line << "info size"
- << info_split_list.size();
+ auto* tmp2 = new QTableWidgetItem(QString::fromStdString(info.second[1]));
+ tmp2->setTextAlignment(Qt::AlignCenter);
+ ui_->componentDetailsTable->setItem(row, 2, tmp2);
- if (info_split_list.size() != 3) continue;
+ auto* tmp3 = new QTableWidgetItem(QString::fromStdString(info.second[2]));
+ tmp3->setTextAlignment(Qt::AlignLeft);
+ ui_->componentDetailsTable->setItem(row, 3, tmp3);
- if (info_split_list[0] == "gpg") {
- components_info.push_back({info_split_list[0], info_split_list[1],
- info.GnupgVersion, info_split_list[2]});
- } else {
- components_info.push_back(
- {info_split_list[0], info_split_list[1], "/", info_split_list[2]});
- }
- }
+ row++;
}
- ui_->conponentDetailsTable->setRowCount(components_info.size());
+ ui_->componentDetailsTable->resizeColumnsToContents();
- int row = 0;
- for (const auto& info : components_info) {
- if (info.size() != 4) continue;
+ ui_->configurationDetailsTable->setRowCount(
+ ctx_info.ConfigurationsInfo.size());
- auto* tmp0 = new QTableWidgetItem(QString::fromStdString(info[0]));
+ row = 0;
+ for (const auto& info : ctx_info.ConfigurationsInfo) {
+ if (info.second.size() != 1) continue;
+
+ auto* tmp0 = new QTableWidgetItem(QString::fromStdString(info.first));
tmp0->setTextAlignment(Qt::AlignCenter);
- ui_->conponentDetailsTable->setItem(row, 0, tmp0);
+ ui_->configurationDetailsTable->setItem(row, 0, tmp0);
- auto* tmp1 = new QTableWidgetItem(QString::fromStdString(info[1]));
+ auto* tmp1 = new QTableWidgetItem(QString::fromStdString(info.second[0]));
tmp1->setTextAlignment(Qt::AlignCenter);
- ui_->conponentDetailsTable->setItem(row, 1, tmp1);
-
- auto* tmp2 = new QTableWidgetItem(QString::fromStdString(info[2]));
- tmp2->setTextAlignment(Qt::AlignCenter);
- ui_->conponentDetailsTable->setItem(row, 2, tmp2);
-
- auto* tmp3 = new QTableWidgetItem(QString::fromStdString(info[3]));
- tmp3->setTextAlignment(Qt::AlignLeft);
- ui_->conponentDetailsTable->setItem(row, 3, tmp3);
+ ui_->configurationDetailsTable->setItem(row, 1, tmp1);
row++;
}
+
+ ui_->configurationDetailsTable->resizeColumnsToContents();
}