7 #include "findbarbase.h"
8 #include <KStatefulBrush>
10 #include <PimCommon/LineEditWithCompleterNg>
12 #include <KColorScheme>
13 #include <KLocalizedString>
17 #include <QApplication>
19 #include <QHBoxLayout>
23 #include <QPushButton>
25 #include <QToolButton>
27 using namespace WebEngineViewer;
29 FindBarBase::FindBarBase(
QWidget *parent)
33 lay->setContentsMargins({});
37 closeBtn->setObjectName(QStringLiteral(
"close"));
38 closeBtn->setIconSize(
QSize(16, 16));
39 closeBtn->setToolTip(
i18n(
"Close"));
41 #ifndef QT_NO_ACCESSIBILITY
42 closeBtn->setAccessibleName(
i18n(
"Close"));
45 closeBtn->setAutoRaise(
true);
46 lay->addWidget(closeBtn);
49 lay->addWidget(label);
52 mSearch->setObjectName(QStringLiteral(
"searchline"));
53 mSearch->setToolTip(
i18n(
"Text to search for"));
54 mSearch->setClearButtonEnabled(
true);
55 label->setBuddy(mSearch);
56 lay->addWidget(mSearch);
59 mFindNextBtn->setToolTip(
i18n(
"Jump to next match"));
60 mFindNextBtn->setObjectName(QStringLiteral(
"findnext"));
61 lay->addWidget(mFindNextBtn);
62 mFindNextBtn->setEnabled(
false);
65 mFindPrevBtn->setToolTip(
i18n(
"Jump to previous match"));
66 mFindPrevBtn->setObjectName(QStringLiteral(
"findprevious"));
67 lay->addWidget(mFindPrevBtn);
68 mFindPrevBtn->setEnabled(
false);
71 optionsBtn->setText(
i18n(
"Options"));
72 optionsBtn->setToolTip(
i18n(
"Modify search behavior"));
73 mOptionsMenu =
new QMenu(optionsBtn);
74 mCaseSensitiveAct = mOptionsMenu->addAction(
i18n(
"Case sensitive"));
75 mCaseSensitiveAct->setCheckable(
true);
77 optionsBtn->setMenu(mOptionsMenu);
78 lay->addWidget(optionsBtn);
88 mStatus->setObjectName(QStringLiteral(
"status"));
91 mNotFoundString =
i18n(
"Phrase not found");
92 mStatus->setFixedWidth(fm.boundingRect(mNotFoundString).width());
93 lay->addWidget(mStatus);
97 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
102 FindBarBase::~FindBarBase() =
default;
104 QMenu *FindBarBase::optionsMenu()
const
109 QString FindBarBase::text()
const
111 return mSearch->text();
114 void FindBarBase::setText(
const QString &text)
116 mSearch->setText(text);
117 addToCompletion(text);
120 void FindBarBase::focusAndSetCursor()
124 mSearch->selectAll();
128 void FindBarBase::slotClearSearch()
133 void FindBarBase::autoSearch(
const QString &str)
135 const bool isNotEmpty = (!str.
isEmpty());
136 mFindPrevBtn->setEnabled(isNotEmpty);
137 mFindNextBtn->setEnabled(isNotEmpty);
148 void FindBarBase::slotSearchText(
bool backward,
bool isAutoSearch)
150 searchText(backward, isAutoSearch);
153 void FindBarBase::updatePalette()
156 mPositiveBackground = QStringLiteral(
"QLineEdit{ background-color:%1 }").arg(bgBrush.brush(mSearch->palette()).color().name());
158 mNegativeBackground = QStringLiteral(
"QLineEdit{ background-color:%1 }").arg(bgBrush.brush(mSearch->palette()).color().name());
161 void FindBarBase::setFoundMatch(
bool match)
163 #ifndef QT_NO_STYLE_STYLESHEET
166 if (!mSearch->text().isEmpty()) {
167 if (mNegativeBackground.isEmpty()) {
171 styleSheet = mPositiveBackground;
174 styleSheet = mNegativeBackground;
175 mStatus->setText(mNotFoundString);
178 mSearch->setStyleSheet(styleSheet);
182 void FindBarBase::searchText(
bool backward,
bool isAutoSearch)
185 Q_UNUSED(isAutoSearch)
188 void FindBarBase::addToCompletion(
const QString &text)
190 mSearch->addCompletionItem(text);
193 void FindBarBase::findNext()
195 searchText(
false,
false);
196 addToCompletion(mLastSearchStr);
199 void FindBarBase::findPrev()
201 searchText(
true,
false);
202 addToCompletion(mLastSearchStr);
205 void FindBarBase::caseSensitivityChanged(
bool b)
207 updateSensitivity(b);
210 void FindBarBase::updateSensitivity(
bool)
214 void FindBarBase::slotHighlightAllChanged(
bool b)
219 void FindBarBase::updateHighLight(
bool)
223 void FindBarBase::clearSelections()
225 setFoundMatch(
false);
228 void FindBarBase::closeBar()
233 mSearch->clearFocus();
234 Q_EMIT hideFindBar();
237 bool FindBarBase::event(
QEvent *e)
247 if (shortCutOverride) {
256 if (shortCutOverride) {
259 if (mSearch->text().isEmpty()) {
270 #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)