1
0
mirror of https://github.com/altlinux/admc.git synced 2025-03-21 02:50:43 +03:00

fix slow refresh

\ when many users are loaded
This commit is contained in:
Dmitry Degtyarev 2021-02-11 13:20:55 +04:00
parent 4c480efc30
commit ceeaed978b
2 changed files with 7 additions and 1 deletions

View File

@ -46,6 +46,7 @@
#include <QStack>
#include <QMenu>
#include <QLabel>
#include <QSortFilterProxyModel>
enum ScopeRole {
ScopeRole_Id = Role_ObjectClass + 1,
@ -89,6 +90,9 @@ Console::Console(MenuBar *menubar_arg)
results_view->setSelectionMode(QAbstractItemView::ExtendedSelection);
results_view->setDragDropOverwriteMode(true);
results_proxy_model = new QSortFilterProxyModel(this);
results_view->setModel(results_proxy_model);
SETTINGS()->setup_header_state(results_view->header(), VariantSetting_ResultsHeader);
auto results_wrapper = new QWidget();
@ -300,7 +304,7 @@ void Console::on_current_scope_changed(const QModelIndex &current, const QModelI
const int id = current.data(ScopeRole_Id).toInt();
QStandardItemModel *results_model = scope_id_to_results[id];
results_view->setModel(results_model);
results_proxy_model->setSourceModel(results_model);
// Update header with new object counts when rows are added/removed
connect(

View File

@ -42,6 +42,7 @@ class QStandardItem;
class AdObject;
class MenuBar;
class QLabel;
class QSortFilterProxyModel;
template <typename T> class QList;
class Console final : public QWidget {
@ -76,6 +77,7 @@ private:
MenuBar *menubar;
QWidget *results_header;
QLabel *results_header_label;
QSortFilterProxyModel *results_proxy_model;
// NOTE: store target history as scope node id's
// Last is closest to current