1
0
mirror of https://github.com/altlinux/admc.git synced 2025-02-09 01:57:26 +03:00

split state for find widgets

for find object dialog and select object dialog
before state was shared between the two, now it's two separate states
This commit is contained in:
Dmitry Degtyarev 2021-09-29 12:13:56 +04:00
parent ece8591055
commit 0c5c109b89
7 changed files with 34 additions and 9 deletions

View File

@ -45,4 +45,12 @@ FindObjectDialog::FindObjectDialog(const QList<QString> classes, const QString d
ui->find_widget->setup_view_menu(view_menu);
settings_setup_dialog_geometry(SETTING_find_object_dialog_geometry, this);
const QVariant state = settings_get_variant(SETTING_find_object_state);
ui->find_widget->restore_state(state);
}
FindObjectDialog::~FindObjectDialog() {
const QVariant state = ui->find_widget->save_state();
settings_set_variant(SETTING_find_object_state, state);
}

View File

@ -36,6 +36,7 @@ class FindObjectDialog final : public QDialog {
public:
FindObjectDialog(const QList<QString> classes, const QString default_base, QWidget *parent);
~FindObjectDialog();
private:
Ui::FindObjectDialog *ui;

View File

@ -66,9 +66,6 @@ FindWidget::FindWidget(QWidget *parent)
head_item->setText(tr("Find results"));
ui->console->set_scope_view_visible(false);
const QVariant console_widget_state = settings_get_variant(SETTING_find_results_state);
ui->console->restore_state(console_widget_state);
const QModelIndex head_index = head_item->index();
ui->console->set_current_scope(head_index);
@ -87,16 +84,21 @@ FindWidget::FindWidget(QWidget *parent)
});
}
FindWidget::~FindWidget() {
const QVariant state = ui->console->save_state();
settings_set_variant(SETTING_find_results_state, state);
}
void FindWidget::init(const QList<QString> classes, const QString &default_base) {
ui->filter_widget->add_classes(g_adconfig, classes);
ui->select_base_widget->init(g_adconfig, default_base);
}
QVariant FindWidget::save_state() const {
const QVariant state = ui->console->save_state();
return state;
}
void FindWidget::restore_state(const QVariant &state) {
ui->console->restore_state(state);
}
void FindWidget::setup_action_menu(QMenu *menu) {
ui->console->add_actions(menu);

View File

@ -42,9 +42,11 @@ class FindWidget final : public QWidget {
public:
FindWidget(QWidget *parent = nullptr);
~FindWidget();
void init(const QList<QString> classes, const QString &default_base);
QVariant save_state() const;
void restore_state(const QVariant &state);
void setup_action_menu(QMenu *menu);
void setup_view_menu(QMenu *menu);

View File

@ -23,6 +23,7 @@
#include "adldap.h"
#include "globals.h"
#include "settings.h"
#include <QMenuBar>
@ -39,6 +40,14 @@ SelectObjectAdvancedDialog::SelectObjectAdvancedDialog(const QList<QString> clas
ui->find_widget->init(classes, g_adconfig->domain_head());
ui->find_widget->setup_view_menu(view_menu);
const QVariant state = settings_get_variant(SETTING_select_object_advanced_state);
ui->find_widget->restore_state(state);
}
SelectObjectAdvancedDialog::~SelectObjectAdvancedDialog() {
const QVariant state = ui->find_widget->save_state();
settings_set_variant(SETTING_select_object_advanced_state, state);
}
QList<QString> SelectObjectAdvancedDialog::get_selected_dns() const {

View File

@ -36,6 +36,7 @@ class SelectObjectAdvancedDialog final : public QDialog {
public:
SelectObjectAdvancedDialog(const QList<QString> classes, QWidget *parent);
~SelectObjectAdvancedDialog();
QList<QString> get_selected_dns() const;

View File

@ -48,6 +48,8 @@ DEFINE_SETTING(SETTING_console_widget_state);
DEFINE_SETTING(SETTING_policy_results_state);
DEFINE_SETTING(SETTING_find_results_state);
DEFINE_SETTING(SETTING_filter_dialog_state);
DEFINE_SETTING(SETTING_select_object_advanced_state);
DEFINE_SETTING(SETTING_find_object_state);
// Widget geometry
DEFINE_SETTING(SETTING_main_window_geometry);