7#include "findbarbase.h"
8#include <KStatefulBrush>
10#include <PimCommon/LineEditWithCompleterNg>
12#include <KColorScheme>
13#include <KLocalizedString>
25using namespace KSieveUi;
27FindBarBase::FindBarBase(
QWidget *parent)
31 lay->setContentsMargins(2, 2, 2, 2);
36 closeBtn->setIconSize(
QSize(16, 16));
37 closeBtn->setToolTip(
i18nc(
"@info:tooltip",
"Close"));
39#ifndef QT_NO_ACCESSIBILITY
40 closeBtn->setAccessibleName(
i18n(
"Close"));
43 closeBtn->setAutoRaise(
true);
44 lay->addWidget(closeBtn);
47 lay->addWidget(label);
51 mSearch->setToolTip(
i18nc(
"@info:tooltip",
"Text to search for"));
52 mSearch->setClearButtonEnabled(
true);
53 label->setBuddy(mSearch);
54 lay->addWidget(mSearch);
57 mFindNextBtn->setToolTip(
i18nc(
"@info:tooltip",
"Jump to next match"));
59 lay->addWidget(mFindNextBtn);
60 mFindNextBtn->setEnabled(
false);
63 mFindPrevBtn->setToolTip(
i18nc(
"@info:tooltip",
"Jump to previous match"));
65 lay->addWidget(mFindPrevBtn);
66 mFindPrevBtn->setEnabled(
false);
69 optionsBtn->setText(
i18n(
"Options"));
70 optionsBtn->setToolTip(
i18nc(
"@info:tooltip",
"Modify search behavior"));
71 mOptionsMenu =
new QMenu(optionsBtn);
72 mCaseSensitiveAct = mOptionsMenu->addAction(
i18n(
"Case sensitive"));
73 mCaseSensitiveAct->setCheckable(
true);
75 optionsBtn->setMenu(mOptionsMenu);
76 lay->addWidget(optionsBtn);
84 mStatus =
new QLabel(
this);
88 mNotFoundString =
i18n(
"Phrase not found");
89 mStatus->setFixedWidth(fm.boundingRect(mNotFoundString).width());
90 lay->addWidget(mStatus);
97FindBarBase::~FindBarBase() =
default;
99QMenu *FindBarBase::optionsMenu()
104QString FindBarBase::text()
const
106 return mSearch->text();
109void FindBarBase::setText(
const QString &text)
111 mSearch->setText(text);
114void FindBarBase::focusAndSetCursor()
118 mSearch->selectAll();
122void FindBarBase::autoSearch(
const QString &str)
124 const bool isNotEmpty = (!str.
isEmpty());
125 mFindPrevBtn->setEnabled(isNotEmpty);
126 mFindNextBtn->setEnabled(isNotEmpty);
136void FindBarBase::slotSearchText(
bool backward,
bool isAutoSearch)
138 searchText(backward, isAutoSearch);
141void FindBarBase::setFoundMatch(
bool match)
143#ifndef QT_NO_STYLE_STYLESHEET
146 if (!mSearch->text().isEmpty()) {
147 if (mNegativeBackground.isEmpty()) {
149 mPositiveBackground = QStringLiteral(
"QLineEdit{ background-color:%1 }").arg(bgBrush.brush(mSearch->palette()).color().name());
151 mNegativeBackground = QStringLiteral(
"QLineEdit{ background-color:%1 }").arg(bgBrush.brush(mSearch->palette()).color().name());
158 mStatus->setText(mNotFoundString);
165void FindBarBase::searchText(
bool backward,
bool isAutoSearch)
168 Q_UNUSED(isAutoSearch)
171void FindBarBase::addToCompletion(
const QString &text)
173 mSearch->addCompletionItem(text);
176void FindBarBase::findNext()
178 searchText(
false,
false);
179 addToCompletion(mLastSearchStr);
182void FindBarBase::findPrev()
184 searchText(
true,
false);
185 addToCompletion(mLastSearchStr);
188void FindBarBase::caseSensitivityChanged(
bool b)
190 updateSensitivity(b);
193void FindBarBase::updateSensitivity(
bool)
197void FindBarBase::slotHighlightAllChanged(
bool b)
202void FindBarBase::updateHighLight(
bool)
206void FindBarBase::clearSelections()
208 setFoundMatch(
false);
211void FindBarBase::closeBar()
216 mSearch->clearFocus();
220bool FindBarBase::event(QEvent *e)
228 auto kev =
static_cast<QKeyEvent *
>(e);
230 if (shortCutOverride) {
239 if (shortCutOverride) {
242 if (mSearch->text().isEmpty()) {
256#include "moc_findbarbase.cpp"
QString i18nc(const char *context, const char *text, const TYPE &arg...)
QString i18n(const char *text, const TYPE &arg...)
QString label(StandardShortcut id)
void toggled(bool checked)
QIcon fromTheme(const QString &name)
void textChanged(const QString &text)
bool isEmpty() const const
QFuture< ArgsType< Signal > > connect(Sender *sender, Signal signal)