X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/6e34ec835d495ea3c8c385f12bb493c8f7dfea15..d9141a2aded8b9f13eeac0786e8ee3f065d5b911:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index efae23d6e..54e6d8b6c 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -28,7 +28,7 @@ #include "dolphinnewfilemenu.h" #include "dolphinviewcontainer.h" #include "mainwindowadaptor.h" -#include "panels/facets/facetpanel.h" +#include "panels/filter/filterpanel.h" #include "panels/folders/folderspanel.h" #include "panels/places/placespanel.h" #include "panels/information/informationpanel.h" @@ -53,6 +53,7 @@ #include #include #include +#include #include #include #include @@ -115,7 +116,8 @@ DolphinMainWindow::DolphinMainWindow(int id) : m_actionHandler(0), m_remoteEncoding(0), m_settingsDialog(0), - m_lastHandleUrlStatJob(0) + m_lastHandleUrlStatJob(0), + m_filterDockIsTemporaryVisible(false) { // Workaround for a X11-issue in combination with KModifierInfo // (see DolphinContextMenu::initializeModifierKeyInfo() for @@ -570,6 +572,14 @@ void DolphinMainWindow::closeEvent(QCloseEvent* event) settings.save(); + if (m_filterDockIsTemporaryVisible) { + QDockWidget* filterDock = findChild("filterDock"); + if (filterDock != 0) { + filterDock->hide(); + } + m_filterDockIsTemporaryVisible = false; + } + KXmlGuiWindow::closeEvent(event); } @@ -1190,6 +1200,26 @@ void DolphinMainWindow::slotWriteStateChanged(bool isFolderWritable) newFileMenu()->setEnabled(isFolderWritable); } +void DolphinMainWindow::slotSearchModeChanged(bool enabled) +{ + QDockWidget* filterDock = findChild("filterDock"); + if (filterDock == 0) { + return; + } + + if (enabled) { + if (!filterDock->isVisible()) { + m_filterDockIsTemporaryVisible = true; + } + filterDock->show(); + } else { + if (filterDock->isVisible() && m_filterDockIsTemporaryVisible) { + filterDock->hide(); + } + m_filterDockIsTemporaryVisible = false; + } +} + void DolphinMainWindow::openContextMenu(const KFileItem& item, const KUrl& url, const QList& customActions) @@ -1490,7 +1520,7 @@ void DolphinMainWindow::setupActions() connect(openTerminal, SIGNAL(triggered()), this, SLOT(openTerminal())); // setup 'Settings' menu - m_showMenuBar = KStandardAction::showMenubar(this, SLOT(toggleShowMenuBar()), actionCollection()); + m_showMenuBar = KStandardAction::showHideMenubar(this, SLOT(toggleShowMenuBar()), actionCollection()); KStandardAction::preferences(this, SLOT(editSettings()), actionCollection()); // not in menu actions @@ -1563,22 +1593,6 @@ void DolphinMainWindow::setupDockWidgets() connect(foldersPanel, SIGNAL(changeUrl(KUrl, Qt::MouseButtons)), this, SLOT(handlePlacesClick(KUrl, Qt::MouseButtons))); - // setup "Facets" -#ifdef HAVE_NEPOMUK - QDockWidget* facetDock = new QDockWidget(i18nc("@title:window", "Filter")); - facetDock->setObjectName("facetDock"); - facetDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - Panel* facetPanel = new FacetPanel(facetDock); - connect(facetPanel, SIGNAL(urlActivated(KUrl)), this, SLOT(handleUrl(KUrl))); - facetDock->setWidget(facetPanel); - - QAction* facetAction = facetDock->toggleViewAction(); - facetAction->setIcon(KIcon("dialog-facet")); - addDockWidget(Qt::RightDockWidgetArea, facetDock); - connect(this, SIGNAL(urlChanged(KUrl)), - facetPanel, SLOT(setUrl(KUrl))); -#endif - // setup "Terminal" #ifndef Q_OS_WIN QDockWidget* terminalDock = new QDockWidget(i18nc("@title:window Shell terminal", "Terminal")); @@ -1598,12 +1612,32 @@ void DolphinMainWindow::setupDockWidgets() terminalPanel, SLOT(setUrl(KUrl))); #endif + // setup "Filter" +#ifdef HAVE_NEPOMUK + QDockWidget* filterDock = new QDockWidget(i18nc("@title:window", "Filter")); + filterDock->setObjectName("filterDock"); + filterDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); + Panel* filterPanel = new FilterPanel(filterDock); + 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")); + addDockWidget(Qt::RightDockWidgetArea, filterDock); + connect(this, SIGNAL(urlChanged(KUrl)), + filterPanel, SLOT(setUrl(KUrl))); +#endif + const bool firstRun = DolphinSettings::instance().generalSettings()->firstRun(); if (firstRun) { infoDock->hide(); foldersDock->hide(); #ifndef Q_OS_WIN terminalDock->hide(); +#endif +#ifdef HAVE_NEPOMUK + filterDock->hide(); #endif } @@ -1633,12 +1667,12 @@ void DolphinMainWindow::setupDockWidgets() panelsMenu->addAction(placesAction); panelsMenu->addAction(infoAction); panelsMenu->addAction(foldersAction); -#ifdef HAVE_NEPOMUK - panelsMenu->addAction(facetAction); -#endif #ifndef Q_OS_WIN panelsMenu->addAction(terminalAction); #endif +#ifdef HAVE_NEPOMUK + panelsMenu->addAction(filterAction); +#endif } void DolphinMainWindow::updateEditActions() @@ -1738,6 +1772,8 @@ void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container) this, SLOT(updateFilterBarAction(bool))); connect(container, SIGNAL(writeStateChanged(bool)), this, SLOT(slotWriteStateChanged(bool))); + connect(container, SIGNAL(searchModeChanged(bool)), + this, SLOT(slotSearchModeChanged(bool))); DolphinView* view = container->view(); connect(view, SIGNAL(selectionChanged(KFileItemList)),