diff --git a/sources/SearchAndReplace/ui/searchandreplacewidget.cpp b/sources/SearchAndReplace/ui/searchandreplacewidget.cpp index ba9dbcd77..65900d3c1 100644 --- a/sources/SearchAndReplace/ui/searchandreplacewidget.cpp +++ b/sources/SearchAndReplace/ui/searchandreplacewidget.cpp @@ -25,6 +25,8 @@ #include "independenttextitem.h" #include "conductor.h" +#include + /** * @brief SearchAndReplaceWidget::SearchAndReplaceWidget * Constructor @@ -87,6 +89,9 @@ void SearchAndReplaceWidget::clear() { disconnect(ui->m_tree_widget, &QTreeWidget::itemChanged, this, &SearchAndReplaceWidget::itemChanged); + qDeleteAll(m_diagram_hash.keys()); + m_diagram_hash.clear(); + qDeleteAll(m_element_hash.keys()); m_element_hash.clear(); @@ -224,7 +229,23 @@ void SearchAndReplaceWidget::fillItemsList() DiagramContent dc; - for (Diagram *diagram : project_->diagrams()) { + for (Diagram *diagram : project_->diagrams()) + { + QString str; + + QSettings settings; + if (settings.value("genericpanel/folio", true).toBool()) { + str = diagram->border_and_titleblock.finalfolio(); + } else { + str = QString::number(diagram->folioIndex()); + } + + str.append(" " + diagram->title()); + + QTreeWidgetItem *qtwi = new QTreeWidgetItem(m_folio_qtwi); + qtwi->setText(0, str); + qtwi->setCheckState(0, Qt::Checked); + m_diagram_hash.insert(qtwi, QPointer(diagram)); dc += DiagramContent(diagram, false); } @@ -565,7 +586,14 @@ void SearchAndReplaceWidget::on_m_tree_widget_itemDoubleClicked(QTreeWidgetItem { Q_UNUSED(column); - if (m_element_hash.keys().contains(item)) + if (m_diagram_hash.keys().contains(item)) + { + QPointer diagram = m_diagram_hash.value(item); + if(diagram) { + diagram.data()->showMe(); + } + } + else if (m_element_hash.keys().contains(item)) { QPointer elmt = m_element_hash.value(item); if (elmt) { diff --git a/sources/SearchAndReplace/ui/searchandreplacewidget.h b/sources/SearchAndReplace/ui/searchandreplacewidget.h index 4de4b9574..7e2803b18 100644 --- a/sources/SearchAndReplace/ui/searchandreplacewidget.h +++ b/sources/SearchAndReplace/ui/searchandreplacewidget.h @@ -87,6 +87,7 @@ class SearchAndReplaceWidget : public QWidget QHash> m_conductor_hash; QPointer m_highlighted_element; QPointer m_last_selected; + QHash> m_diagram_hash; }; #endif // SEARCHANDREPLACEWIDGET_H