18 #include <QDialogButtonBox>
23 #include <QTreeWidget>
24 #include <QAbstractItemModel>
26 #include <QTextDocumentFragment>
48 , mStyleSheet( QStringLiteral(
"QLabel { background-color: rgb(%1, %2, %3); color: rgb(%4, %5, %6 );}/*!search!*/" ).arg(
HIGHLIGHT_BACKGROUND_RED )
61 const QString labelText = QTextDocumentFragment::fromHtml(
mLabel->text() ).toPlainText();
62 return labelText.contains( text, Qt::CaseInsensitive );
78 QString ss =
mWidget->styleSheet();
87 , mCheckBox( checkBox )
88 , mStyleSheet( QStringLiteral(
"/*!search!*/QCheckBox { background-color: rgb(%1, %2, %3); color: rgb( %4, %5, %6);}/*!search!*/" ).arg(
HIGHLIGHT_BACKGROUND_RED )
102 return mCheckBox->text().contains( text, Qt::CaseInsensitive );
119 QString ss =
mWidget->styleSheet();
129 , mStyleSheet( QStringLiteral(
"/*!search!*/QAbstractButton { background-color: rgb(%1, %2, %3); color: rgb(%4, %5, %6);}/*!search!*/" ).arg(
HIGHLIGHT_BACKGROUND_RED )
143 return mButton->text().contains( text, Qt::CaseInsensitive );
160 QString ss =
mWidget->styleSheet();
169 , mGroupBox( groupBox )
170 , mStyleSheet( QStringLiteral(
"/*!search!*/QGroupBox::title { background-color: rgb(%1, %2, %3); color: rgb(%4, %5, %6);}/*!search!*/" ).arg(
HIGHLIGHT_BACKGROUND_RED )
184 return mGroupBox->title().contains( text, Qt::CaseInsensitive );
201 QString ss =
mWidget->styleSheet();
210 , mTreeView( treeView )
220 for (
int col = 0; col <
mTreeView->model()->columnCount(); ++col )
222 const QString headerText =
mTreeView->model()->headerData( col, Qt::Horizontal ).toString();
223 if ( headerText.contains( text, Qt::CaseInsensitive ) )
227 const QModelIndexList hits =
mTreeView->model()->match(
mTreeView->model()->index( 0, 0 ), Qt::DisplayRole, text, 1, Qt::MatchContains | Qt::MatchRecursive );
228 return !hits.isEmpty();
233 bool success =
false;
234 QTreeWidget *treeWidget = qobject_cast<QTreeWidget *>(
mTreeView );
239 std::function< void( QTreeWidgetItem *,
bool ) > setChildrenVisible;
240 setChildrenVisible = [
this, &setChildrenVisible]( QTreeWidgetItem * item,
bool visible )
242 for (
int i = 0; i < item->childCount(); ++i )
243 setChildrenVisible( item->child( i ), visible );
245 item->setHidden( !visible );
247 setChildrenVisible( treeWidget->invisibleRootItem(),
false );
249 const QList<QTreeWidgetItem *> items = treeWidget->findItems( text, Qt::MatchContains | Qt::MatchRecursive, 0 );
250 success = !items.empty();
252 for ( QTreeWidgetItem *item : items )
254 setChildrenVisible( item,
true );
256 QTreeWidgetItem *parent = item;
262 parent->setExpanded(
true );
263 parent->setHidden(
false );
264 parent = parent->parent();
277 QTreeWidget *treeWidget = qobject_cast<QTreeWidget *>(
mTreeView );
281 std::function< void( QTreeWidgetItem * ) > showChildren;
282 showChildren = [
this, &showChildren]( QTreeWidgetItem * item )
284 for (
int i = 0; i < item->childCount(); ++i )
285 showChildren( item->child( i ) );
288 showChildren( treeWidget->invisibleRootItem() );
305 , mTableView( tableView )
315 for (
int col = 0; col <
mTableView->model()->columnCount(); ++col )
317 const QString headerText =
mTableView->model()->headerData( col, Qt::Horizontal ).toString();
318 if ( headerText.contains( text, Qt::CaseInsensitive ) )
322 const QModelIndexList hits =
mTableView->model()->match(
mTableView->model()->index( 0, 0 ), Qt::DisplayRole, text, 1, Qt::MatchContains | Qt::MatchRecursive );
323 return !hits.isEmpty();
void reset() override
reset the style of the widgets to its original state
bool highlightText(const QString &text) override
Highlight the text in the widget.
QgsOptionsDialogHighlightCheckBox(QCheckBox *checkBox)
constructs a highlight widget for a checkbox
bool searchText(const QString &text) override
Search for the text in the widget and return true if it was found.
QPointer< QCheckBox > mCheckBox
QgsOptionsDialogHighlightGroupBox(QGroupBox *groupBox)
constructs a highlight widget for a group box.
void reset() override
reset the style of the widgets to its original state
bool searchText(const QString &text) override
Search for the text in the widget and return true if it was found.
bool highlightText(const QString &text) override
Highlight the text in the widget.
QPointer< QGroupBox > mGroupBox
QPointer< QLabel > mLabel
bool searchText(const QString &text) override
Search for the text in the widget and return true if it was found.
bool highlightText(const QString &text) override
Highlight the text in the widget.
QgsOptionsDialogHighlightLabel(QLabel *label)
constructs a highlight widget for a label
void reset() override
reset the style of the widgets to its original state
QPointer< QTableView > mTableView
bool searchText(const QString &text) override
Search for the text in the widget and return true if it was found.
void reset() override
reset the style of the widgets to its original state
bool highlightText(const QString &text) override
Highlight the text in the widget.
QgsOptionsDialogHighlightTable(QTableView *tableView)
constructs a highlight widget for a table view or widget.
void reset() override
reset the style of the widgets to its original state
QgsOptionsDialogHighlightTree(QTreeView *treeView)
constructs a highlight widget for a tree view or widget.
bool highlightText(const QString &text) override
Highlight the text in the widget.
QMap< QTreeWidgetItem *, bool > mTreeInitialVisible
bool searchText(const QString &text) override
Search for the text in the widget and return true if it was found.
QMap< QTreeWidgetItem *, bool > mTreeInitialExpand
QPointer< QTreeView > mTreeView