#include "dolphin_searchsettings.h"
#include "dolphinfacetswidget.h"
+#include "panels/places/placesitemmodel.h"
-#include <panels/places/placesitemmodel.h>
-
-#include <QIcon>
-#include <QLineEdit>
#include <KLocalizedString>
-#include <KSeparator>
#include <KNS3/KMoreToolsMenuFactory>
+#include <KSeparator>
+#include <config-baloo.h>
+#ifdef HAVE_BALOO
+#include <Baloo/Query>
+#include <Baloo/IndexerConfig>
+#endif
#include <QButtonGroup>
#include <QDir>
+#include <QFontDatabase>
#include <QHBoxLayout>
+#include <QIcon>
#include <QLabel>
+#include <QLineEdit>
#include <QScrollArea>
#include <QTimer>
#include <QToolButton>
#include <QUrlQuery>
-#include <config-baloo.h>
-#ifdef HAVE_BALOO
- #include <Baloo/Query>
- #include <Baloo/IndexerConfig>
-#endif
-#include <QFontDatabase>
-
DolphinSearchBox::DolphinSearchBox(QWidget* parent) :
QWidget(parent),
m_startedSearching(false),
// #379135: we get the FocusIn event when we close a tab but we don't want to emit
// the activated() signal before the removeTab() call in DolphinTabWidget::closeTab() returns.
// To avoid this issue, we delay the activation of the search box.
- QTimer::singleShot(0, this, [this] {
- setActive(true);
- setFocus();
- });
+ // We also don't want to schedule the activation process if we are already active,
+ // otherwise we can enter in a loop of FocusIn/FocusOut events with the searchbox of another tab.
+ if (!isActive()) {
+ QTimer::singleShot(0, this, [this] {
+ setActive(true);
+ setFocus();
+ });
+ }
break;
default:
// Apply layout for the search input
QHBoxLayout* searchInputLayout = new QHBoxLayout();
- searchInputLayout->setMargin(0);
+ searchInputLayout->setContentsMargins(0, 0, 0, 0);
searchInputLayout->addWidget(closeButton);
searchInputLayout->addWidget(m_searchLabel);
searchInputLayout->addWidget(m_searchInput);
// Apply layout for the options
QHBoxLayout* optionsLayout = new QHBoxLayout();
- optionsLayout->setMargin(0);
+ optionsLayout->setContentsMargins(0, 0, 0, 0);
optionsLayout->addWidget(m_fileNameButton);
optionsLayout->addWidget(m_contentButton);
optionsLayout->addWidget(m_separator);
m_optionsScrollArea->setWidgetResizable(true);
m_topLayout = new QVBoxLayout(this);
- m_topLayout->setMargin(0);
+ m_topLayout->setContentsMargins(0, 0, 0, 0);
m_topLayout->addLayout(searchInputLayout);
m_topLayout->addWidget(m_optionsScrollArea);
m_topLayout->addWidget(m_facetsWidget);