From 810e58b76c43f21b8bc0feaf05d58d778737966e Mon Sep 17 00:00:00 2001 From: Dmitry Degtyarev Date: Thu, 8 Apr 2021 12:42:02 +0400 Subject: [PATCH] relocate object item setup f-ns to object_model.cpp make ConsoleRole_HasProperties public --- src/admc/central_widget.cpp | 39 +++------------------- src/admc/central_widget.h | 3 -- src/admc/console_widget/console_widget.h | 4 ++- src/admc/console_widget/console_widget_p.h | 3 +- src/admc/object_model.cpp | 28 ++++++++++++++++ src/admc/object_model.h | 3 ++ 6 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/admc/central_widget.cpp b/src/admc/central_widget.cpp index 139018d5..9e629834 100644 --- a/src/admc/central_widget.cpp +++ b/src/admc/central_widget.cpp @@ -245,7 +245,7 @@ void CentralWidget::go_online(AdInterface &ad) { scope_head_index = QPersistentModelIndex(item->index()); - setup_scope_item(item, head_object); + setup_object_scope_item(item, head_object); console_widget->set_current_scope(item->index()); @@ -834,27 +834,6 @@ void CentralWidget::fetch_scope_node(const QModelIndex &index) { hide_busy_indicator(); } -void CentralWidget::setup_scope_item(QStandardItem *item, const AdObject &object) { - const QString name = - [&]() { - const QString dn = object.get_dn(); - return dn_get_name(dn); - }(); - - item->setText(name); - - console_widget->set_has_properties(item->index(), true); - - load_object_item_data(item, object); - disable_drag_if_object_cant_be_moved({item}, object); -} - -void CentralWidget::setup_results_row(const QList row, const AdObject &object) { - console_widget->set_has_properties(row[0]->index(), true); - load_object_row(row, object); - disable_drag_if_object_cant_be_moved(row, object); -} - // NOTE: "containers" referenced here don't mean objects // with "container" object class. Instead it means all the // objects that can have children(some of which are not @@ -889,11 +868,11 @@ void CentralWidget::add_object_to_console(const AdObject &object, const QModelIn QList results_row; console_widget->add_buddy_scope_and_results(object_results_id, ScopeNodeType_Dynamic, parent, &scope_item, &results_row); - setup_scope_item(scope_item, object); - setup_results_row(results_row, object); + setup_object_scope_item(scope_item, object); + setup_object_results_row(results_row, object); } else { const QList results_row = console_widget->add_results_row(parent); - setup_results_row(results_row, object); + setup_object_results_row(results_row, object); } } @@ -939,7 +918,7 @@ void CentralWidget::update_console_item(const QModelIndex &index, const AdObject const QString old_dn = scope_item->data(ObjectRole_DN).toString(); const bool dn_changed = (old_dn != object.get_dn()); - setup_scope_item(scope_item, object); + setup_object_scope_item(scope_item, object); // NOTE: if dn changed, then this change affects // this item's children, so have to refresh to @@ -983,14 +962,6 @@ void CentralWidget::update_policy_item(const QModelIndex &index, const AdObject } } -void CentralWidget::disable_drag_if_object_cant_be_moved(const QList &items, const AdObject &object) { - const bool cannot_move = object.get_system_flag(SystemFlagsBit_CannotMove); - - for (auto item : items) { - item->setDragEnabled(!cannot_move); - } -} - // Determine what kind of drop type is dropping this object // onto target. If drop type is none, then can't drop this // object on this target. diff --git a/src/admc/central_widget.h b/src/admc/central_widget.h index dd384b15..2aedbb1c 100644 --- a/src/admc/central_widget.h +++ b/src/admc/central_widget.h @@ -121,13 +121,10 @@ private: ResultsView *object_results; void update_description_bar(); - void setup_scope_item(QStandardItem *item, const AdObject &object); - void setup_results_row(const QList row, const AdObject &object); void add_object_to_console(const AdObject &object, const QModelIndex &parent); void move_object_in_console(AdInterface &ad, const QPersistentModelIndex &old_index, const QString &new_parent_dn, const QPersistentModelIndex &new_parent_index); void update_console_item(const QModelIndex &index, const AdObject &object); void update_policy_item(const QModelIndex &index, const AdObject &object); - void disable_drag_if_object_cant_be_moved(const QList &items, const AdObject &object); QList get_dns(const QList &indexes); void enable_disable_helper(const bool disabled); void update_actions_visibility(); diff --git a/src/admc/console_widget/console_widget.h b/src/admc/console_widget/console_widget.h index c41a60fc..5057381f 100644 --- a/src/admc/console_widget/console_widget.h +++ b/src/admc/console_widget/console_widget.h @@ -53,7 +53,9 @@ class QStandardItem; class QMenu; class QAbstractItemView; -enum ConsoleRoleLast { +enum ConsoleRolePublic { + ConsoleRole_HasProperties = Qt::UserRole + 18, + // Use this role to set and get item types ConsoleRole_Type = Qt::UserRole + 19, diff --git a/src/admc/console_widget/console_widget_p.h b/src/admc/console_widget/console_widget_p.h index 8d71d905..98f20d34 100644 --- a/src/admc/console_widget/console_widget_p.h +++ b/src/admc/console_widget/console_widget_p.h @@ -56,11 +56,10 @@ enum ConsoleRole { // Determines whether scope is dynamic. ConsoleRole_ScopeIsDynamic = Qt::UserRole + 6, - ConsoleRole_HasProperties = Qt::UserRole + 7, - // NOTE: don't go above ConsoleRole_Type and // ConsoleRole_LAST (defined in public header) + // ConsoleRole_HasProperties = Qt::UserRole + 18, // ConsoleRole_Type = Qt::UserRole + 19, // ConsoleRole_LAST = Qt::UserRole + 20 }; diff --git a/src/admc/object_model.cpp b/src/admc/object_model.cpp index bacf1aca..237d89fb 100644 --- a/src/admc/object_model.cpp +++ b/src/admc/object_model.cpp @@ -65,6 +65,8 @@ void load_object_row(const QList row, const AdObject &object) { } void load_object_item_data(QStandardItem *item, const AdObject &object) { + item->setData(true, ConsoleRole_HasProperties); + item->setData(ItemType_DomainObject, ConsoleRole_Type); const QIcon icon = get_object_icon(object); @@ -122,3 +124,29 @@ QList object_model_search_attributes() { return attributes; } + +void setup_object_scope_item(QStandardItem *item, const AdObject &object) { + const QString name = + [&]() { + const QString dn = object.get_dn(); + return dn_get_name(dn); + }(); + + item->setText(name); + + load_object_item_data(item, object); + disable_drag_if_object_cant_be_moved({item}, object); +} + +void setup_object_results_row(const QList row, const AdObject &object) { + load_object_row(row, object); + disable_drag_if_object_cant_be_moved(row, object); +} + +void disable_drag_if_object_cant_be_moved(const QList &items, const AdObject &object) { + const bool cannot_move = object.get_system_flag(SystemFlagsBit_CannotMove); + + for (auto item : items) { + item->setDragEnabled(!cannot_move); + } +} diff --git a/src/admc/object_model.h b/src/admc/object_model.h index c1186784..12a043a7 100644 --- a/src/admc/object_model.h +++ b/src/admc/object_model.h @@ -46,5 +46,8 @@ void load_object_item_data(QStandardItem *item, const AdObject &object); QList object_model_header_labels(); QList object_model_default_columns(); QList object_model_search_attributes(); +void setup_object_scope_item(QStandardItem *item, const AdObject &object); +void setup_object_results_row(const QList row, const AdObject &object); +void disable_drag_if_object_cant_be_moved(const QList &items, const AdObject &object); #endif /* OBJECT_MODEL_H */