X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/51a4c273a0ff8b8bc27f4ecb3ab155e18361955a..8eb9b508ca87fb1d634d8b8ba62c054ed04466d2:/src/search/dolphinsearchbox.cpp diff --git a/src/search/dolphinsearchbox.cpp b/src/search/dolphinsearchbox.cpp index bc1445cb7..68dc9da3c 100644 --- a/src/search/dolphinsearchbox.cpp +++ b/src/search/dolphinsearchbox.cpp @@ -20,10 +20,11 @@ #include "dolphinsearchbox.h" #include "dolphin_searchsettings.h" +#include "dolphinsearchinformation.h" -#include -#include -#include +#include +#include +#include #include #include @@ -34,21 +35,22 @@ #include #include #include +#include #include #include #include #include #ifdef HAVE_NEPOMUK - #include - #include - #include - #include - #include - #include - #include - #include - #include + #include + #include + #include + #include + #include + #include + #include + #include + #include #endif DolphinSearchBox::DolphinSearchBox(QWidget* parent) : @@ -110,7 +112,8 @@ KUrl DolphinSearchBox::searchPath() const KUrl DolphinSearchBox::urlForSearching() const { KUrl url; - if (m_nepomukActivated && isSearchPathIndexed()) { + const DolphinSearchInformation& searchInfo = DolphinSearchInformation::instance(); + if (searchInfo.isIndexingEnabled() && searchInfo.isPathIndexed(url)) { url = nepomukUrlForSearching(); } else { url.setProtocol("filenamesearch"); @@ -299,9 +302,22 @@ void DolphinSearchBox::init() optionsLayout->addWidget(m_everywhereButton); optionsLayout->addStretch(1); + // Put the options into a QScrollArea. This prevents increasing the view width + // in case that not enough width for the options is available. + QWidget* optionsContainer = new QWidget(this); + optionsContainer->setLayout(optionsLayout); + QScrollArea* optionsScrollArea = new QScrollArea(this); + optionsScrollArea->setFrameShape(QFrame::NoFrame); + optionsScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + optionsScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + optionsScrollArea->setMaximumHeight(optionsContainer->sizeHint().height()); + optionsScrollArea->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); + optionsScrollArea->setWidget(optionsContainer); + optionsScrollArea->setWidgetResizable(true); + m_topLayout = new QVBoxLayout(this); m_topLayout->addLayout(searchInputLayout); - m_topLayout->addLayout(optionsLayout); + m_topLayout->addWidget(optionsScrollArea); searchLabel->setBuddy(m_searchInput); loadSettings(); @@ -314,41 +330,6 @@ void DolphinSearchBox::init() connect(m_startSearchTimer, SIGNAL(timeout()), this, SLOT(emitSearchSignal())); } -bool DolphinSearchBox::isSearchPathIndexed() const -{ -#ifdef HAVE_NEPOMUK - const QString path = m_searchPath.path(); - - const KConfig strigiConfig("nepomukstrigirc"); - const QStringList indexedFolders = strigiConfig.group("General").readPathEntry("folders", QStringList()); - - // Check whether the current search path is part of an indexed folder - bool isIndexed = false; - foreach (const QString& indexedFolder, indexedFolders) { - if (path.startsWith(indexedFolder)) { - isIndexed = true; - break; - } - } - - if (isIndexed) { - // The current search path is part of an indexed folder. Check whether no - // excluded folder is part of the search path. - const QStringList excludedFolders = strigiConfig.group("General").readPathEntry("exclude folders", QStringList()); - foreach (const QString& excludedFolder, excludedFolders) { - if (path.startsWith(excludedFolder)) { - isIndexed = false; - break; - } - } - } - - return isIndexed; -#else - return false; -#endif -} - KUrl DolphinSearchBox::nepomukUrlForSearching() const { #ifdef HAVE_NEPOMUK