mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-12-19 23:20:52 +01:00
Ajout d'un champ de texte pour filtrer le contenu du panel d'elements
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@255 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
@@ -344,3 +344,29 @@ QTreeWidgetItem *ElementsPanel::findFile(const QString &file) const {
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
/**
|
||||
N'affiche que les elements contenant une chaine donnee
|
||||
@param m Chaine a filtrer
|
||||
*/
|
||||
void ElementsPanel::filter(const QString &m) {
|
||||
QList<QTreeWidgetItem *> items = findItems("*", Qt::MatchRecursive | Qt::MatchWildcard);
|
||||
if (m.isEmpty()) {
|
||||
foreach(QTreeWidgetItem *item, items) item -> setHidden(false);
|
||||
} else {
|
||||
foreach(QTreeWidgetItem *item, items) {
|
||||
QString file = item -> data(0, 42).toString();
|
||||
bool item_matches = item -> text(0).contains(m, Qt::CaseInsensitive);
|
||||
item -> setHidden(!item_matches);
|
||||
if (item_matches) {
|
||||
// remonte l'arborescence pour afficher les categories contenant l'element
|
||||
QTreeWidgetItem *parent_qtwi = item -> parent();
|
||||
while(parent_qtwi && (parent_qtwi -> isHidden() || !parent_qtwi -> isExpanded())) {
|
||||
parent_qtwi -> setHidden(false);
|
||||
parent_qtwi -> setExpanded(true);
|
||||
parent_qtwi = parent_qtwi -> parent();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user