From be6150128133fe54da325e094c43abc0f6997ece Mon Sep 17 00:00:00 2001 From: Semyon Knyazev Date: Fri, 9 Feb 2024 21:32:46 +0400 Subject: [PATCH] Refactor groub policy tab widget Inheritance widget and gpo options check box are removed from .ui and created in tab's ctor now. Group policy tab is also initialized with console ptr now. --- src/admc/tabs/group_policy_tab.cpp | 22 ++++++++++++++-------- src/admc/tabs/group_policy_tab.h | 4 ++++ src/admc/tabs/group_policy_tab.ui | 18 ------------------ 3 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/admc/tabs/group_policy_tab.cpp b/src/admc/tabs/group_policy_tab.cpp index 10212f04..fb2b79a4 100644 --- a/src/admc/tabs/group_policy_tab.cpp +++ b/src/admc/tabs/group_policy_tab.cpp @@ -36,28 +36,34 @@ #include #include #include -#include +#include GroupPolicyTab::GroupPolicyTab(QList *edit_list, ConsoleWidget *console_widget, const QString &ou_dn, QWidget *parent) -: QWidget(parent) { +: QWidget(parent), console(console_widget) { ui = new Ui::GroupPolicyTab(); ui->setupUi(this); - auto options_edit = new GpoptionsEdit(ui->gpo_options_check, this); + inheritance_widget = new InheritedPoliciesWidget(console, this); + + gpo_options_check = new QCheckBox(tr("Block policy inheritance"), this); + auto options_edit = new GpoptionsEdit(gpo_options_check, this); + + ui->verticalLayout->addWidget(inheritance_widget); + ui->verticalLayout->addWidget(gpo_options_check); edit_list->append({options_edit}); - console = console_widget; target_ou_index = search_gpo_ou_index(console, ou_dn); + if (console && target_ou_index.isValid()) { - ui->inheritance_widget->update(target_ou_index); - connect(ui->gpo_options_check, &QCheckBox::toggled, [this](bool toggled) { - ui->inheritance_widget->hide_not_enforced_inherited_links(toggled); + inheritance_widget->update(target_ou_index); + connect(gpo_options_check, &QCheckBox::toggled, [this](bool toggled) { + inheritance_widget->hide_not_enforced_inherited_links(toggled); }); connect(options_edit, &GpoptionsEdit::gp_options_changed, [this](bool inheritance_blocked) { console->get_item(target_ou_index)->setData(inheritance_blocked, PolicyOURole_Inheritance_Block); - ui->inheritance_widget->update(target_ou_index); + inheritance_widget->update(target_ou_index); PolicyOUResultsWidget *result_ou_widget = dynamic_cast(console->get_result_widget_for_index(target_ou_index)); if (result_ou_widget) diff --git a/src/admc/tabs/group_policy_tab.h b/src/admc/tabs/group_policy_tab.h index d0473204..50d866db 100644 --- a/src/admc/tabs/group_policy_tab.h +++ b/src/admc/tabs/group_policy_tab.h @@ -33,6 +33,8 @@ */ class ConsoleWidget; +class InheritedPoliciesWidget; +class QCheckBox; namespace Ui { class GroupPolicyTab; @@ -50,6 +52,8 @@ public: private: ConsoleWidget *console; QModelIndex target_ou_index; + InheritedPoliciesWidget *inheritance_widget; + QCheckBox *gpo_options_check; }; #endif /* GROUP_POLICY_TAB_H */ diff --git a/src/admc/tabs/group_policy_tab.ui b/src/admc/tabs/group_policy_tab.ui index 09daa095..a24b194a 100644 --- a/src/admc/tabs/group_policy_tab.ui +++ b/src/admc/tabs/group_policy_tab.ui @@ -27,26 +27,8 @@ - - - - - - - Block policy inheritance - - - - - - InheritedPoliciesWidget - QWidget -
policy_ou_results_widget/inherited_policies_widget.h
- 1 -
-