From de6e1ffd538f2bb174e9eb2b75931f7ec9781d3b Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Wed, 28 Dec 2022 17:15:51 +0100 Subject: [PATCH] Another performance fix for the many layers case --- src/layui/layui/layWidgets.cc | 8 +++++++- src/layui/layui/layWidgets.h | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/layui/layui/layWidgets.cc b/src/layui/layui/layWidgets.cc index 3d7c9100d..965ce8dd3 100644 --- a/src/layui/layui/layWidgets.cc +++ b/src/layui/layui/layWidgets.cc @@ -326,7 +326,7 @@ struct LayerSelectionComboBoxPrivateData }; LayerSelectionComboBox::LayerSelectionComboBox (QWidget *parent) - : QComboBox (parent) + : QComboBox (parent), dm_update_layer_list (this, &LayerSelectionComboBox::do_update_layer_list) { mp_private = new LayerSelectionComboBoxPrivateData (); mp_private->no_layer_available = false; @@ -471,6 +471,12 @@ LayerSelectionComboBox::set_layout (const db::Layout *layout) void LayerSelectionComboBox::update_layer_list () +{ + dm_update_layer_list (); +} + +void +LayerSelectionComboBox::do_update_layer_list () { int i = currentIndex (); db::LayerProperties props = mp_private->last_props; diff --git a/src/layui/layui/layWidgets.h b/src/layui/layui/layWidgets.h index 02d9666f4..10077217a 100644 --- a/src/layui/layui/layWidgets.h +++ b/src/layui/layui/layWidgets.h @@ -28,6 +28,7 @@ #include "layuiCommon.h" #include "tlObject.h" +#include "tlDeferredExecution.h" #include #include @@ -251,9 +252,11 @@ protected slots: private: LayerSelectionComboBoxPrivateData *mp_private; + tl::DeferredMethod dm_update_layer_list; void on_layer_list_changed (int); void update_layer_list (); + void do_update_layer_list (); }; /**