┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-04-20 22:10:18 +0200
committerPeter Penz <[email protected]>2011-04-20 22:11:22 +0200
commit371e718ec58fc4b5b611f05102f9e4d0f0544ac2 (patch)
tree80109d4ac3e388420ae37c70da9b4be9fe72d5a7 /src
parent27a8c55ec9207ae00da91596ba390e835a066782 (diff)
Fix enabled/disabled issue of Search Panel
Diffstat (limited to 'src')
-rw-r--r--src/dolphinmainwindow.cpp27
-rw-r--r--src/panels/search/searchpanel.cpp14
-rw-r--r--src/panels/search/searchpanel.h10
3 files changed, 27 insertions, 24 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index ed6d0f196..f5ac94f40 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -831,9 +831,9 @@ void DolphinMainWindow::slotSearchLocationChanged()
SearchPanel* searchPanel = qobject_cast<SearchPanel*>(searchDock->widget());
if (searchPanel) {
- searchPanel->setSearchMode(SearchSettings::location() == QLatin1String("FromHere")
- ? SearchPanel::FromCurrentDir
- : SearchPanel::Everywhere);
+ searchPanel->setSearchLocation(SearchSettings::location() == QLatin1String("FromHere")
+ ? SearchPanel::FromCurrentDir
+ : SearchPanel::Everywhere);
}
}
@@ -1346,17 +1346,20 @@ void DolphinMainWindow::slotSearchModeChanged(bool enabled)
}
SearchPanel* searchPanel = qobject_cast<SearchPanel*>(searchDock->widget());
- if (searchPanel) {
- // Per default any search-operation triggered by the Search Panel is done
- // "Everywhere".
- SearchPanel::SearchMode searchMode = SearchPanel::Everywhere;
+ if (!searchPanel) {
+ return;
+ }
- if (enabled && (SearchSettings::location() == QLatin1String("FromHere"))) {
- // Only if the search-mode is enabled it is visible for the user whether
- // a searching is done "Everywhere" or "From Here" (= current directory).
- searchMode = SearchPanel::FromCurrentDir;
+ if (enabled) {
+ SearchPanel::SearchLocation searchLocation = SearchPanel::Everywhere;
+ const KUrl url = m_activeViewContainer->url();
+ const bool isSearchUrl = (url.protocol() == QLatin1String("nepomuksearch"));
+ if ((SearchSettings::location() == QLatin1String("FromHere") && !isSearchUrl)) {
+ searchLocation = SearchPanel::FromCurrentDir;
}
- searchPanel->setSearchMode(searchMode);
+ searchPanel->setSearchLocation(searchLocation);
+ } else {
+ searchPanel->setSearchLocation(SearchPanel::Everywhere);
}
#else
Q_UNUSED(enabled);
diff --git a/src/panels/search/searchpanel.cpp b/src/panels/search/searchpanel.cpp
index a7226154b..dd0ad9be4 100644
--- a/src/panels/search/searchpanel.cpp
+++ b/src/panels/search/searchpanel.cpp
@@ -50,7 +50,7 @@
SearchPanel::SearchPanel(QWidget* parent) :
Panel(parent),
m_initialized(false),
- m_searchMode(Everywhere),
+ m_searchLocation(Everywhere),
m_lastSetUrlStatJob(0),
m_startedFromDir(),
m_facetWidget(0),
@@ -63,17 +63,17 @@ SearchPanel::~SearchPanel()
{
}
-void SearchPanel::setSearchMode(SearchMode mode)
+void SearchPanel::setSearchLocation(SearchLocation location)
{
- m_searchMode = mode;
+ m_searchLocation = location;
if (isVisible()) {
setEnabled(isFilteringPossible());
}
}
-SearchPanel::SearchMode SearchPanel::searchMode() const
+SearchPanel::SearchLocation SearchPanel::searchLocation() const
{
- return m_searchMode;
+ return m_searchLocation;
}
bool SearchPanel::urlChanged()
@@ -213,7 +213,7 @@ void SearchPanel::slotQueryTermChanged(const Nepomuk::Query::Term& term)
{
if (term.isValid()) {
// Default case: A facet has been changed by the user to restrict the query.
- if ((m_searchMode == FromCurrentDir) && !m_unfacetedRestQuery.isValid()) {
+ if ((m_searchLocation == FromCurrentDir) && !m_unfacetedRestQuery.isValid()) {
// Adjust the query to respect the FromCurrentDir setting
Nepomuk::Query::ComparisonTerm compTerm(
Nepomuk::Vocabulary::NFO::fileName(),
@@ -262,5 +262,5 @@ bool SearchPanel::isFilteringPossible() const
{
const DolphinSearchInformation& searchInfo = DolphinSearchInformation::instance();
return searchInfo.isIndexingEnabled()
- && ((m_searchMode == Everywhere) || searchInfo.isPathIndexed(m_startedFromDir));
+ && ((m_searchLocation == Everywhere) || searchInfo.isPathIndexed(m_startedFromDir));
}
diff --git a/src/panels/search/searchpanel.h b/src/panels/search/searchpanel.h
index b92b692aa..ae34b20c6 100644
--- a/src/panels/search/searchpanel.h
+++ b/src/panels/search/searchpanel.h
@@ -42,7 +42,7 @@ class SearchPanel : public Panel
Q_OBJECT
public:
- enum SearchMode
+ enum SearchLocation
{
Everywhere,
FromCurrentDir
@@ -56,8 +56,8 @@ public:
* or from the current directory (= FromCurrentDir). The current directory
* is automatically determined when setUrl() has been called.
*/
- void setSearchMode(SearchMode mode);
- SearchMode searchMode() const;
+ void setSearchLocation(SearchLocation location);
+ SearchLocation searchLocation() const;
signals:
void urlActivated(const KUrl& url);
@@ -83,7 +83,7 @@ private:
* @return True if the facets can be applied to the given URL
* and hence a filtering of the content is possible.
* False is returned if the search-mode is set to
- * SearchMode::FromCurrentDir and this directory is
+ * SearchLocation::FromCurrentDir and this directory is
* not indexed at all. Also if indexing is disabled
* false will be returned.
*/
@@ -91,7 +91,7 @@ private:
private:
bool m_initialized;
- SearchMode m_searchMode;
+ SearchLocation m_searchLocation;
KJob* m_lastSetUrlStatJob;
KUrl m_startedFromDir;