mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-18 13:30:34 +01:00
Search and replace : improve the search for diagram
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@5565 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -246,6 +246,7 @@ void SearchAndReplaceWidget::fillItemsList()
|
|||||||
|
|
||||||
QTreeWidgetItem *qtwi = new QTreeWidgetItem(m_folio_qtwi);
|
QTreeWidgetItem *qtwi = new QTreeWidgetItem(m_folio_qtwi);
|
||||||
qtwi->setText(0, str);
|
qtwi->setText(0, str);
|
||||||
|
qtwi->setData(0, Qt::UserRole, searchTerms(diagram));
|
||||||
qtwi->setCheckState(0, Qt::Checked);
|
qtwi->setCheckState(0, Qt::Checked);
|
||||||
m_diagram_hash.insert(qtwi, QPointer<Diagram>(diagram));
|
m_diagram_hash.insert(qtwi, QPointer<Diagram>(diagram));
|
||||||
dc += DiagramContent(diagram, false);
|
dc += DiagramContent(diagram, false);
|
||||||
@@ -356,12 +357,22 @@ void SearchAndReplaceWidget::search()
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool match = false;
|
bool match = false;
|
||||||
for(QTreeWidgetItem *qtwi : ui->m_tree_widget->findItems(str, Qt::MatchContains | Qt::MatchRecursive))
|
for (QTreeWidgetItem *qtwi : ui->m_tree_widget->findItems(str, Qt::MatchContains | Qt::MatchRecursive)) //Search in all items
|
||||||
{
|
{
|
||||||
match = true;
|
match = true;
|
||||||
qtwi->setHidden(false);
|
qtwi->setHidden(false);
|
||||||
setVisibleAllParents(qtwi);
|
setVisibleAllParents(qtwi);
|
||||||
}
|
}
|
||||||
|
for (QTreeWidgetItem *qtwi : m_diagram_hash.keys()) //Search for diagrams items
|
||||||
|
{
|
||||||
|
QStringList list = qtwi->data(0, Qt::UserRole).toStringList();
|
||||||
|
if (!list.filter(str, Qt::CaseInsensitive).isEmpty())
|
||||||
|
{
|
||||||
|
match = true;
|
||||||
|
qtwi->setHidden(false);
|
||||||
|
setVisibleAllParents(qtwi);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QPalette background = ui->m_search_le->palette();
|
QPalette background = ui->m_search_le->palette();
|
||||||
background.setColor(QPalette::Base, match ? QColor("#E0FFF0") : QColor("#FFE0EF"));
|
background.setColor(QPalette::Base, match ? QColor("#E0FFF0") : QColor("#FFE0EF"));
|
||||||
@@ -592,6 +603,30 @@ void SearchAndReplaceWidget::activateNextChecked()
|
|||||||
ui->m_next_pb->isEnabled());
|
ui->m_next_pb->isEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SearchAndReplaceWidget::searchTerms
|
||||||
|
* @param diagram
|
||||||
|
* @return All QStrings use as terms for search.
|
||||||
|
*/
|
||||||
|
QStringList SearchAndReplaceWidget::searchTerms(Diagram *diagram) const
|
||||||
|
{
|
||||||
|
QStringList list;
|
||||||
|
TitleBlockProperties prop = diagram->border_and_titleblock.exportTitleBlock();
|
||||||
|
list.append(prop.title);
|
||||||
|
list.append(prop.author);
|
||||||
|
list.append(prop.filename);
|
||||||
|
list.append(prop.machine);
|
||||||
|
list.append(prop.locmach);
|
||||||
|
list.append(prop.indexrev);
|
||||||
|
list.append(prop.folio);
|
||||||
|
list.append(prop.date.toString());
|
||||||
|
for (QString key : prop.context.keys()) {
|
||||||
|
list.append(prop.context.value(key).toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
void SearchAndReplaceWidget::on_m_quit_button_clicked() {
|
void SearchAndReplaceWidget::on_m_quit_button_clicked() {
|
||||||
this->setHidden(true);
|
this->setHidden(true);
|
||||||
}
|
}
|
||||||
@@ -693,6 +728,10 @@ void SearchAndReplaceWidget::on_m_tree_widget_currentItemChanged(QTreeWidgetItem
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateNextPreviousButtons();
|
updateNextPreviousButtons();
|
||||||
|
if (!current) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (current->checkState(0) == Qt::Checked && !m_category_qtwi.contains(current)) {
|
if (current->checkState(0) == Qt::Checked && !m_category_qtwi.contains(current)) {
|
||||||
ui->m_replace_pb->setEnabled(true);
|
ui->m_replace_pb->setEnabled(true);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ class SearchAndReplaceWidget : public QWidget
|
|||||||
void setChildCheckState(QTreeWidgetItem *item, Qt::CheckState check, bool deep = true);
|
void setChildCheckState(QTreeWidgetItem *item, Qt::CheckState check, bool deep = true);
|
||||||
void updateParentCheckState(QTreeWidgetItem *item, bool all_parents = true);
|
void updateParentCheckState(QTreeWidgetItem *item, bool all_parents = true);
|
||||||
void activateNextChecked();
|
void activateNextChecked();
|
||||||
|
QStringList searchTerms(Diagram *diagram) const;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_m_quit_button_clicked();
|
void on_m_quit_button_clicked();
|
||||||
|
|||||||
Reference in New Issue
Block a user