diff options
author | saturneric <[email protected]> | 2024-01-22 16:38:22 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-01-22 16:38:22 +0000 |
commit | 89d0f9b3d6ff1783722bacaa28a2071db5b6a6c8 (patch) | |
tree | b265e642fba70f9580147671e97a6d6b1082a8ff | |
parent | fix: ExecuteContext should be marked as export (diff) | |
download | GpgFrontend-89d0f9b3d6ff1783722bacaa28a2071db5b6a6c8.tar.gz GpgFrontend-89d0f9b3d6ff1783722bacaa28a2071db5b6a6c8.zip |
feat: add gnupg directories infos to gnupg tab
-rw-r--r-- | src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp | 16 | ||||
-rw-r--r-- | src/ui/dialog/help/GnupgTab.cpp | 96 | ||||
-rw-r--r-- | ui/GnuPGInfo.ui | 17 |
3 files changed, 93 insertions, 36 deletions
diff --git a/src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp b/src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp index c974ec2a..c965ed30 100644 --- a/src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp +++ b/src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp @@ -213,24 +213,14 @@ auto GnuPGInfoGatheringModule::Exec(EventRefrernce event) -> int { exec_contexts.emplace_back(GpgCommandExecutor::ExecuteContext{ gpgconf_path, QStringList{"--list-dirs"}, [this](int exit_code, const QString &p_out, const QString &p_err) { - MODULE_LOG_DEBUG( - "gpgconf configurations exit_code: {} process stdout size: {}", - exit_code, p_out.size()); - - if (exit_code != 0) { - MODULE_LOG_ERROR( - "gpgconf execute error, process stderr: {} process stdout: " - "{}", - p_err, p_out); - return; - } + if (exit_code != 0) return; auto line_split_list = p_out.split("\n"); for (const auto &line : line_split_list) { auto info_split_list = line.split(":"); - MODULE_LOG_DEBUG("gpgconf info line: {} info size: {}", line, - info_split_list.size()); + MODULE_LOG_DEBUG("gpgconf direcrotries info line: {} info size: {}", + line, info_split_list.size()); if (info_split_list.size() != 2) continue; diff --git a/src/ui/dialog/help/GnupgTab.cpp b/src/ui/dialog/help/GnupgTab.cpp index 28f1acfe..1aceed1a 100644 --- a/src/ui/dialog/help/GnupgTab.cpp +++ b/src/ui/dialog/help/GnupgTab.cpp @@ -45,7 +45,8 @@ GpgFrontend::UI::GnupgTab::GnupgTab(QWidget* parent) << tr("Checksum") << tr("Binary Path"); ui_->tabWidget->setTabText(0, tr("Components")); - ui_->tabWidget->setTabText(1, tr("Configurations")); + ui_->tabWidget->setTabText(1, tr("Directories")); + ui_->tabWidget->setTabText(2, tr("Options")); ui_->componentDetailsTable->setColumnCount(components_column_titles.length()); ui_->componentDetailsTable->setHorizontalHeaderLabels( @@ -54,28 +55,53 @@ GpgFrontend::UI::GnupgTab::GnupgTab(QWidget* parent) ui_->componentDetailsTable->setSelectionBehavior( QAbstractItemView::SelectRows); - QStringList configurations_column_titles; - configurations_column_titles << tr("Component") << tr("Group") << tr("Key") - << tr("Description") << tr("Default Value") - << tr("Value"); + // tableitems not editable + ui_->componentDetailsTable->setEditTriggers( + QAbstractItemView::NoEditTriggers); + + // no focus (rectangle around tableitems) + // may be it should focus on whole row + ui_->componentDetailsTable->setFocusPolicy(Qt::NoFocus); + ui_->componentDetailsTable->setAlternatingRowColors(true); + + QStringList directories_column_titles; + directories_column_titles << tr("Directory Type") << tr("Path"); - ui_->configurationDetailsTable->setColumnCount( - configurations_column_titles.length()); - ui_->configurationDetailsTable->setHorizontalHeaderLabels( - configurations_column_titles); - ui_->configurationDetailsTable->horizontalHeader()->setStretchLastSection( + ui_->directoriesDetailsTable->setColumnCount( + directories_column_titles.length()); + ui_->directoriesDetailsTable->setHorizontalHeaderLabels( + directories_column_titles); + ui_->directoriesDetailsTable->horizontalHeader()->setStretchLastSection( false); - ui_->configurationDetailsTable->setSelectionBehavior( + ui_->directoriesDetailsTable->setSelectionBehavior( QAbstractItemView::SelectRows); // tableitems not editable - ui_->componentDetailsTable->setEditTriggers( + ui_->directoriesDetailsTable->setEditTriggers( QAbstractItemView::NoEditTriggers); // no focus (rectangle around tableitems) // may be it should focus on whole row - ui_->componentDetailsTable->setFocusPolicy(Qt::NoFocus); - ui_->componentDetailsTable->setAlternatingRowColors(true); + ui_->directoriesDetailsTable->setFocusPolicy(Qt::NoFocus); + ui_->directoriesDetailsTable->setAlternatingRowColors(true); + + QStringList options_column_titles; + options_column_titles << tr("Component") << tr("Group") << tr("Key") + << tr("Description") << tr("Default Value") + << tr("Value"); + + ui_->optionDetailsTable->setColumnCount(options_column_titles.length()); + ui_->optionDetailsTable->setHorizontalHeaderLabels(options_column_titles); + ui_->optionDetailsTable->horizontalHeader()->setStretchLastSection(false); + ui_->optionDetailsTable->setSelectionBehavior(QAbstractItemView::SelectRows); + + // tableitems not editable + ui_->optionDetailsTable->setEditTriggers(QAbstractItemView::NoEditTriggers); + + // no focus (rectangle around tableitems) + // may be it should focus on whole row + ui_->optionDetailsTable->setFocusPolicy(Qt::NoFocus); + ui_->optionDetailsTable->setAlternatingRowColors(true); process_software_info(); } @@ -144,6 +170,33 @@ void GpgFrontend::UI::GnupgTab::process_software_info() { ui_->componentDetailsTable->resizeColumnsToContents(); + auto directories = Module::ListRTChildKeys( + "com.bktus.gpgfrontend.module.integrated.gnupg-info-gathering", + QString("gnupg.dirs")); + + ui_->directoriesDetailsTable->setRowCount(directories.size()); + + row = 0; + for (auto& dir : directories) { + const auto dir_path = Module::RetrieveRTValueTypedOrDefault( + "com.bktus.gpgfrontend.module.integrated.gnupg-info-gathering", + QString("gnupg.dirs.%1").arg(dir), QString{}); + + if (dir_path.isEmpty()) continue; + + auto* tmp0 = new QTableWidgetItem(dir); + tmp0->setTextAlignment(Qt::AlignCenter); + ui_->directoriesDetailsTable->setItem(row, 0, tmp0); + + auto* tmp1 = new QTableWidgetItem(dir_path); + tmp1->setTextAlignment(Qt::AlignCenter); + ui_->directoriesDetailsTable->setItem(row, 1, tmp1); + + row++; + } + + ui_->directoriesDetailsTable->resizeColumnsToContents(); + // calcualte the total row number of configuration table row = 0; for (auto& component : components) { @@ -168,7 +221,8 @@ void GpgFrontend::UI::GnupgTab::process_software_info() { row++; } } - ui_->configurationDetailsTable->setRowCount(row); + + ui_->optionDetailsTable->setRowCount(row); row = 0; QString configuration_group; @@ -208,29 +262,29 @@ void GpgFrontend::UI::GnupgTab::process_software_info() { auto* tmp0 = new QTableWidgetItem(component); tmp0->setTextAlignment(Qt::AlignCenter); - ui_->configurationDetailsTable->setItem(row, 0, tmp0); + ui_->optionDetailsTable->setItem(row, 0, tmp0); auto* tmp1 = new QTableWidgetItem(configuration_group); tmp1->setTextAlignment(Qt::AlignCenter); - ui_->configurationDetailsTable->setItem(row, 1, tmp1); + ui_->optionDetailsTable->setItem(row, 1, tmp1); auto* tmp2 = new QTableWidgetItem(option_info["name"].toString()); tmp2->setTextAlignment(Qt::AlignCenter); - ui_->configurationDetailsTable->setItem(row, 2, tmp2); + ui_->optionDetailsTable->setItem(row, 2, tmp2); auto* tmp3 = new QTableWidgetItem(option_info["description"].toString()); tmp3->setTextAlignment(Qt::AlignLeft); - ui_->configurationDetailsTable->setItem(row, 3, tmp3); + ui_->optionDetailsTable->setItem(row, 3, tmp3); auto* tmp4 = new QTableWidgetItem(option_info["default_value"].toString()); tmp4->setTextAlignment(Qt::AlignLeft); - ui_->configurationDetailsTable->setItem(row, 4, tmp4); + ui_->optionDetailsTable->setItem(row, 4, tmp4); auto* tmp5 = new QTableWidgetItem(option_info["value"].toString()); tmp5->setTextAlignment(Qt::AlignLeft); - ui_->configurationDetailsTable->setItem(row, 5, tmp5); + ui_->optionDetailsTable->setItem(row, 5, tmp5); row++; } diff --git a/ui/GnuPGInfo.ui b/ui/GnuPGInfo.ui index 0ea5385f..19479a77 100644 --- a/ui/GnuPGInfo.ui +++ b/ui/GnuPGInfo.ui @@ -87,6 +87,9 @@ <property name="currentIndex"> <number>0</number> </property> + <property name="tabBarAutoHide"> + <bool>false</bool> + </property> <widget class="QWidget" name="tab"> <attribute name="title"> <string>Components</string> @@ -109,11 +112,11 @@ </widget> <widget class="QWidget" name="tab_2"> <attribute name="title"> - <string>Configurations</string> + <string>Directories</string> </attribute> <layout class="QGridLayout" name="gridLayout_2"> <item row="0" column="0"> - <widget class="QTableWidget" name="configurationDetailsTable"> + <widget class="QTableWidget" name="directoriesDetailsTable"> <property name="sizeAdjustPolicy"> <enum>QAbstractScrollArea::AdjustToContents</enum> </property> @@ -124,6 +127,16 @@ </item> </layout> </widget> + <widget class="QWidget" name="tab_3"> + <attribute name="title"> + <string>Options</string> + </attribute> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <widget class="QTableWidget" name="optionDetailsTable"/> + </item> + </layout> + </widget> </widget> </item> </layout> |