7 #include "findbarbase.h"
8 #include <KStatefulBrush>
10 #include <PimCommon/LineEditWithCompleterNg>
12 #include <KColorScheme>
13 #include <KLocalizedString>
17 #include <QApplication>
20 #include <QHBoxLayout>
24 #include <QPushButton>
26 #include <QToolButton>
28 using namespace WebEngineViewer;
30 FindBarBase::FindBarBase(
QWidget *parent)
34 lay->setContentsMargins({});
38 closeBtn->setObjectName(QStringLiteral(
"close"));
39 closeBtn->setIconSize(
QSize(16, 16));
40 closeBtn->setToolTip(
i18n(
"Close"));
42 #ifndef QT_NO_ACCESSIBILITY
43 closeBtn->setAccessibleName(
i18n(
"Close"));
46 closeBtn->setAutoRaise(
true);
47 lay->addWidget(closeBtn);
50 lay->addWidget(label);
53 mSearch->setObjectName(QStringLiteral(
"searchline"));
54 mSearch->setToolTip(
i18n(
"Text to search for"));
55 mSearch->setClearButtonEnabled(
true);
56 label->setBuddy(mSearch);
57 lay->addWidget(mSearch);
60 mFindNextBtn->setToolTip(
i18n(
"Jump to next match"));
61 mFindNextBtn->setObjectName(QStringLiteral(
"findnext"));
62 lay->addWidget(mFindNextBtn);
63 mFindNextBtn->setEnabled(
false);
66 mFindPrevBtn->setToolTip(
i18n(
"Jump to previous match"));
67 mFindPrevBtn->setObjectName(QStringLiteral(
"findprevious"));
68 lay->addWidget(mFindPrevBtn);
69 mFindPrevBtn->setEnabled(
false);
72 optionsBtn->setText(
i18n(
"Options"));
73 optionsBtn->setToolTip(
i18n(
"Modify search behavior"));
74 mOptionsMenu =
new QMenu(optionsBtn);
75 mCaseSensitiveAct = mOptionsMenu->addAction(
i18n(
"Case sensitive"));
76 mCaseSensitiveAct->setCheckable(
true);
78 optionsBtn->setMenu(mOptionsMenu);
79 lay->addWidget(optionsBtn);
89 mStatus->setObjectName(QStringLiteral(
"status"));
92 mNotFoundString =
i18n(
"Phrase not found");
93 mStatus->setFixedWidth(fm.boundingRect(mNotFoundString).width());
94 lay->addWidget(mStatus);
98 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
103 FindBarBase::~FindBarBase() =
default;
105 QMenu *FindBarBase::optionsMenu()
const
110 QString FindBarBase::text()
const
112 return mSearch->text();
115 void FindBarBase::setText(
const QString &text)
117 mSearch->setText(text);
118 addToCompletion(text);
121 void FindBarBase::focusAndSetCursor()
125 mSearch->selectAll();
129 void FindBarBase::slotClearSearch()
134 void FindBarBase::autoSearch(
const QString &str)
136 const bool isNotEmpty = (!str.
isEmpty());
137 mFindPrevBtn->setEnabled(isNotEmpty);
138 mFindNextBtn->setEnabled(isNotEmpty);
149 void FindBarBase::slotSearchText(
bool backward,
bool isAutoSearch)
151 searchText(backward, isAutoSearch);
154 void FindBarBase::updatePalette()
157 mPositiveBackground = QStringLiteral(
"QLineEdit{ background-color:%1 }").arg(bgBrush.brush(mSearch->palette()).color().name());
159 mNegativeBackground = QStringLiteral(
"QLineEdit{ background-color:%1 }").arg(bgBrush.brush(mSearch->palette()).color().name());
162 void FindBarBase::setFoundMatch(
bool match)
164 #ifndef QT_NO_STYLE_STYLESHEET
167 if (!mSearch->text().isEmpty()) {
168 if (mNegativeBackground.isEmpty()) {
172 styleSheet = mPositiveBackground;
175 styleSheet = mNegativeBackground;
176 mStatus->setText(mNotFoundString);
179 mSearch->setStyleSheet(styleSheet);
183 void FindBarBase::searchText(
bool backward,
bool isAutoSearch)
186 Q_UNUSED(isAutoSearch)
189 void FindBarBase::addToCompletion(
const QString &text)
191 mSearch->addCompletionItem(text);
194 void FindBarBase::findNext()
196 searchText(
false,
false);
197 addToCompletion(mLastSearchStr);
200 void FindBarBase::findPrev()
202 searchText(
true,
false);
203 addToCompletion(mLastSearchStr);
206 void FindBarBase::caseSensitivityChanged(
bool b)
208 updateSensitivity(b);
211 void FindBarBase::updateSensitivity(
bool)
215 void FindBarBase::slotHighlightAllChanged(
bool b)
220 void FindBarBase::updateHighLight(
bool)
224 void FindBarBase::clearSelections()
226 setFoundMatch(
false);
229 void FindBarBase::closeBar()
234 mSearch->clearFocus();
235 Q_EMIT hideFindBar();
238 bool FindBarBase::event(
QEvent *e)
248 if (shortCutOverride) {
257 if (shortCutOverride) {
260 if (mSearch->text().isEmpty()) {
271 #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)