X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/2a5b3ec615bb4e8123bdf5572eb9058d73740f22..4b0dc69070af505e2bc620dd1be8fd3e7dff7718:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index c50a42a40..482a5b7e8 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -30,7 +30,7 @@ #include "dolphinviewcontainer.h" #include "mainwindowadaptor.h" #ifdef HAVE_NEPOMUK - #include "panels/filter/filterpanel.h" + #include "panels/search/searchpanel.h" #include #endif #include "panels/folders/folderspanel.h" @@ -51,6 +51,7 @@ #include "dolphin_generalsettings.h" #include "dolphin_iconsmodesettings.h" +#include "dolphin_searchsettings.h" #include #include @@ -121,7 +122,7 @@ DolphinMainWindow::DolphinMainWindow(int id) : m_remoteEncoding(0), m_settingsDialog(0), m_lastHandleUrlStatJob(0), - m_filterDockIsTemporaryVisible(false) + m_searchDockIsTemporaryVisible(false) { // Workaround for a X11-issue in combination with KModifierInfo // (see DolphinContextMenu::initializeModifierKeyInfo() for @@ -163,6 +164,11 @@ void DolphinMainWindow::openDirectories(const QList& dirs) return; } + if (dirs.count() == 1) { + m_activeViewContainer->setUrl(dirs.first()); + return; + } + const int oldOpenTabsCount = m_viewTab.count(); const GeneralSettings* generalSettings = DolphinSettings::instance().generalSettings(); @@ -419,7 +425,6 @@ void DolphinMainWindow::openNewTab(const KUrl& url) viewTab.primaryView = new DolphinViewContainer(url, viewTab.splitter); viewTab.primaryView->setActive(false); connectViewSignals(viewTab.primaryView); - viewTab.primaryView->view()->reload(); m_viewTab.append(viewTab); @@ -574,12 +579,12 @@ void DolphinMainWindow::closeEvent(QCloseEvent* event) settings.save(); - if (m_filterDockIsTemporaryVisible) { - QDockWidget* filterDock = findChild("filterDock"); - if (filterDock) { - filterDock->hide(); + if (m_searchDockIsTemporaryVisible) { + QDockWidget* searchDock = findChild("searchDock"); + if (searchDock) { + searchDock->hide(); } - m_filterDockIsTemporaryVisible = false; + m_searchDockIsTemporaryVisible = false; } KXmlGuiWindow::closeEvent(event); @@ -1227,21 +1232,35 @@ void DolphinMainWindow::slotSearchModeChanged(bool enabled) return; } - QDockWidget* filterDock = findChild("filterDock"); - if (!filterDock) { + QDockWidget* searchDock = findChild("searchDock"); + if (!searchDock) { return; } if (enabled) { - if (!filterDock->isVisible()) { - m_filterDockIsTemporaryVisible = true; + if (!searchDock->isVisible()) { + m_searchDockIsTemporaryVisible = true; } - filterDock->show(); + searchDock->show(); } else { - if (filterDock->isVisible() && m_filterDockIsTemporaryVisible) { - filterDock->hide(); + if (searchDock->isVisible() && m_searchDockIsTemporaryVisible) { + searchDock->hide(); + } + m_searchDockIsTemporaryVisible = false; + } + + SearchPanel* searchPanel = qobject_cast(searchDock->widget()); + if (searchPanel) { + // Per default any search-operation triggered by the Search Panel is done + // "Everywhere". + SearchPanel::SearchMode searchMode = SearchPanel::Everywhere; + + 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; } - m_filterDockIsTemporaryVisible = false; + searchPanel->setSearchMode(searchMode); } #else Q_UNUSED(enabled); @@ -1307,7 +1326,6 @@ void DolphinMainWindow::init() m_activeViewContainer = m_viewTab[m_tabIndex].primaryView; connectViewSignals(m_activeViewContainer); DolphinView* view = m_activeViewContainer->view(); - view->reload(); m_activeViewContainer->show(); m_actionHandler->setCurrentView(view); @@ -1659,24 +1677,24 @@ void DolphinMainWindow::setupDockWidgets() terminalPanel, SLOT(setUrl(KUrl))); #endif - // Setup "Filter" + // Setup "Search" #ifdef HAVE_NEPOMUK - DolphinDockWidget* filterDock = new DolphinDockWidget(i18nc("@title:window", "Filter")); - filterDock->setLocked(lock); - filterDock->setObjectName("filterDock"); - filterDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - Panel* filterPanel = new FilterPanel(filterDock); - filterPanel->setCustomContextMenuActions(QList() << lockLayoutAction); - connect(filterPanel, SIGNAL(urlActivated(KUrl)), this, SLOT(handleUrl(KUrl))); - filterDock->setWidget(filterPanel); - - QAction* filterAction = filterDock->toggleViewAction(); - filterAction->setShortcut(Qt::Key_F12); - filterAction->setIcon(KIcon("view-filter")); - addActionCloneToCollection(filterAction, "show_filter_panel"); - addDockWidget(Qt::RightDockWidgetArea, filterDock); + DolphinDockWidget* searchDock = new DolphinDockWidget(i18nc("@title:window", "Search")); + searchDock->setLocked(lock); + searchDock->setObjectName("searchDock"); + searchDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); + Panel* searchPanel = new SearchPanel(searchDock); + searchPanel->setCustomContextMenuActions(QList() << lockLayoutAction); + connect(searchPanel, SIGNAL(urlActivated(KUrl)), this, SLOT(handleUrl(KUrl))); + searchDock->setWidget(searchPanel); + + QAction* searchAction = searchDock->toggleViewAction(); + searchAction->setShortcut(Qt::Key_F12); + searchAction->setIcon(KIcon("system-search")); + addActionCloneToCollection(searchAction, "show_search_panel"); + addDockWidget(Qt::RightDockWidgetArea, searchDock); connect(this, SIGNAL(urlChanged(KUrl)), - filterPanel, SLOT(setUrl(KUrl))); + searchPanel, SLOT(setUrl(KUrl))); #endif const bool firstRun = DolphinSettings::instance().generalSettings()->firstRun(); @@ -1687,7 +1705,7 @@ void DolphinMainWindow::setupDockWidgets() terminalDock->hide(); #endif #ifdef HAVE_NEPOMUK - filterDock->hide(); + searchDock->hide(); #endif } @@ -1730,7 +1748,7 @@ void DolphinMainWindow::setupDockWidgets() panelsMenu->addAction(terminalAction); #endif #ifdef HAVE_NEPOMUK - panelsMenu->addAction(filterAction); + panelsMenu->addAction(searchAction); #endif panelsMenu->addSeparator(); panelsMenu->addAction(lockLayoutAction); @@ -1924,7 +1942,6 @@ void DolphinMainWindow::createSecondaryView(int tabIndex) splitter->addWidget(m_viewTab[tabIndex].secondaryView); splitter->setSizes(QList() << newWidth << newWidth); connectViewSignals(m_viewTab[tabIndex].secondaryView); - m_viewTab[tabIndex].secondaryView->view()->reload(); m_viewTab[tabIndex].secondaryView->setActive(false); m_viewTab[tabIndex].secondaryView->show(); }