+ m_searchInput->setClearButtonEnabled(true);
+ m_searchInput->setFont(QFontDatabase::systemFont(QFontDatabase::GeneralFont));
+ connect(m_searchInput, &QLineEdit::returnPressed, this, &DolphinSearchBox::slotReturnPressed);
+ connect(m_searchInput, &QLineEdit::textChanged, this, &DolphinSearchBox::slotSearchTextChanged);
+ setFocusProxy(m_searchInput);
+
+ // Add "Save search" button inside search box
+ m_saveSearchAction = new QAction(this);
+ m_saveSearchAction->setIcon(QIcon::fromTheme(QStringLiteral("document-save-symbolic")));
+ m_saveSearchAction->setText(i18nc("action:button", "Save this search to quickly access it again in the future"));
+ m_saveSearchAction->setEnabled(false);
+ m_searchInput->addAction(m_saveSearchAction, QLineEdit::TrailingPosition);
+ connect(m_saveSearchAction, &QAction::triggered, this, &DolphinSearchBox::slotSearchSaved);
+
+ // Create close button
+ QToolButton *closeButton = new QToolButton(contentsContainer);
+ closeButton->setAutoRaise(true);
+ closeButton->setIcon(QIcon::fromTheme(QStringLiteral("dialog-close")));
+ closeButton->setToolTip(i18nc("@info:tooltip", "Quit searching"));
+ connect(closeButton, &QToolButton::clicked, this, &DolphinSearchBox::emitCloseRequest);
+
+ // Apply layout for the search input
+ QHBoxLayout *searchInputLayout = new QHBoxLayout();
+ searchInputLayout->setContentsMargins(0, 0, 0, 0);
+ searchInputLayout->addWidget(m_searchInput);
+ searchInputLayout->addWidget(closeButton);
+
+ // Create "Filename" and "Content" button
+ m_fileNameButton = new QToolButton(contentsContainer);
+ m_fileNameButton->setText(i18nc("action:button", "Filename"));
+ initButton(m_fileNameButton);
+
+ m_contentButton = new QToolButton();
+ m_contentButton->setText(i18nc("action:button", "Content"));
+ initButton(m_contentButton);
+
+ QButtonGroup *searchWhatGroup = new QButtonGroup(contentsContainer);
+ searchWhatGroup->addButton(m_fileNameButton);
+ searchWhatGroup->addButton(m_contentButton);
+
+ m_separator = new KSeparator(Qt::Vertical, contentsContainer);
+
+ // Create "From Here" and "Your files" buttons
+ m_fromHereButton = new QToolButton(contentsContainer);
+ m_fromHereButton->setText(i18nc("action:button", "From Here"));
+ initButton(m_fromHereButton);
+
+ m_everywhereButton = new QToolButton(contentsContainer);
+ m_everywhereButton->setText(i18nc("action:button", "Your files"));
+ m_everywhereButton->setToolTip(i18nc("action:button", "Search in your home directory"));
+ m_everywhereButton->setIcon(QIcon::fromTheme(QStringLiteral("user-home")));
+ m_everywhereButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+ initButton(m_everywhereButton);
+
+ QButtonGroup *searchLocationGroup = new QButtonGroup(contentsContainer);
+ searchLocationGroup->addButton(m_fromHereButton);
+ searchLocationGroup->addButton(m_everywhereButton);
+
+ KService::Ptr kfind = KService::serviceByDesktopName(QStringLiteral("org.kde.kfind"));
+
+ QToolButton *kfindToolsButton = nullptr;
+ if (kfind) {
+ kfindToolsButton = new QToolButton(contentsContainer);
+ kfindToolsButton->setAutoRaise(true);
+ kfindToolsButton->setPopupMode(QToolButton::InstantPopup);
+ kfindToolsButton->setIcon(QIcon::fromTheme("arrow-down-double"));
+ kfindToolsButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+ kfindToolsButton->setText(i18n("Open %1", kfind->name()));
+ kfindToolsButton->setIcon(QIcon::fromTheme(kfind->icon()));
+
+ connect(kfindToolsButton, &QToolButton::clicked, this, [this, kfind] {
+ auto *job = new KIO::ApplicationLauncherJob(kfind);
+ job->setUrls({m_searchPath});
+ job->start();
+ });
+ }