From fe19b270f9219fd5d205a53f249d3c754b871a70 Mon Sep 17 00:00:00 2001 From: joshua Date: Wed, 22 Jun 2022 17:34:05 +0200 Subject: [PATCH] Improve opening time of terminal strip editor window Need serious refactoring of codes who use the method Element::actualLabel() and also actualLabel itself. This part of code is crappy. --- sources/TerminalStrip/ui/freeterminalmodel.cpp | 4 +++- .../ui/terminalstriptreedockwidget.cpp | 8 ++++++-- sources/elementprovider.cpp | 13 ++++++++----- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/sources/TerminalStrip/ui/freeterminalmodel.cpp b/sources/TerminalStrip/ui/freeterminalmodel.cpp index 658f0526e..4bd5f241b 100644 --- a/sources/TerminalStrip/ui/freeterminalmodel.cpp +++ b/sources/TerminalStrip/ui/freeterminalmodel.cpp @@ -22,6 +22,7 @@ #include "../../utils/qetutils.h" #include "../../qetgraphicsitem/terminalelement.h" #include "../realterminal.h" +#include "../../qetinformation.h" const int LABEL_CELL = 0; const int XREF_CELL = 1; @@ -310,7 +311,8 @@ void FreeTerminalModel::fillTerminalVector() std::sort(free_terminal_vector.begin(), free_terminal_vector.end(), [](TerminalElement *a, TerminalElement *b) { - return QETUtils::sortBeginIntString(a->actualLabel(), b->actualLabel()); + return QETUtils::sortBeginIntString(a->elementData().m_informations.value(QETInformation::ELMT_LABEL).toString(), + b->elementData().m_informations.value(QETInformation::ELMT_LABEL).toString()); }); for (const auto &terminal_ : free_terminal_vector) { diff --git a/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp b/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp index 3ec09f04f..f568a8f76 100644 --- a/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp +++ b/sources/TerminalStrip/ui/terminalstriptreedockwidget.cpp @@ -26,6 +26,7 @@ #include "../realterminal.h" #include "../../qetgraphicsitem/terminalelement.h" #include "../terminalstrip.h" +#include "../../qetinformation.h" TerminalStripTreeDockWidget::TerminalStripTreeDockWidget(QETProject *project, QWidget *parent) : QDockWidget(parent), @@ -305,8 +306,11 @@ void TerminalStripTreeDockWidget::addFreeTerminal() } //Sort the terminal element by label - std::sort(vector_.begin(), vector_.end(), [](TerminalElement *a, TerminalElement *b) { - return a->actualLabel() < b->actualLabel(); + std::sort(vector_.begin(), vector_.end(), [](TerminalElement *a, TerminalElement *b) + { + return a->elementData().m_informations.value(QETInformation::ELMT_LABEL).toString() + < + b->elementData().m_informations.value(QETInformation::ELMT_LABEL).toString(); }); auto free_terminal_item = ui->m_tree_view->topLevelItem(1); diff --git a/sources/elementprovider.cpp b/sources/elementprovider.cpp index f4e84abbf..35d01ae46 100644 --- a/sources/elementprovider.cpp +++ b/sources/elementprovider.cpp @@ -198,14 +198,17 @@ QVector ElementProvider::freeTerminal() const { QVector vector_; - for (const auto diagram : m_diagram_list) { - DiagramContent dc(diagram, false); - for (const auto element : qAsConst(dc.m_elements)) { + for (const auto &diagram : qAsConst(m_diagram_list)) + { + const auto elmt_list{diagram->elements()}; + + for (const auto element : elmt_list) + { if (element->elementData().m_type == ElementData::Terminale) { - auto te = static_cast(element); + const auto te{static_cast(element)}; if (!te->parentTerminalStrip()) { - vector_.append(static_cast(element)); + vector_.append(te); } } }