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.
This commit is contained in:
joshua
2022-06-22 17:34:05 +02:00
parent 2e15372aab
commit fe19b270f9
3 changed files with 17 additions and 8 deletions

View File

@@ -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) {

View File

@@ -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);

View File

@@ -198,14 +198,17 @@ QVector<TerminalElement *> ElementProvider::freeTerminal() const
{
QVector<TerminalElement *> 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<TerminalElement *>(element);
const auto te{static_cast<TerminalElement *>(element)};
if (!te->parentTerminalStrip()) {
vector_.append(static_cast<TerminalElement *>(element));
vector_.append(te);
}
}
}