X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/8e6dbadef2e7f25caed42559c4ffc832e03d387b..213705a22c07778934e3ac4da35ce2e60be9727e:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index a95b5a0d2..33160390e 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -27,16 +27,17 @@ #include "dolphinapplication.h" #include "dolphinnewmenu.h" +#include "search/dolphinsearchbox.h" +#include "search/dolphinsearchoptionsconfigurator.h" #include "settings/dolphinsettings.h" #include "settings/dolphinsettingsdialog.h" -#include "dolphinsearchbox.h" -#include "dolphinstatusbar.h" #include "dolphinviewcontainer.h" #include "panels/folders/folderspanel.h" #include "panels/places/placespanel.h" #include "panels/information/informationpanel.h" #include "panels/information/metadatawidget.h" #include "mainwindowadaptor.h" +#include "statusbar/dolphinstatusbar.h" #include "viewproperties.h" #ifndef Q_OS_WIN @@ -109,6 +110,7 @@ DolphinMainWindow::DolphinMainWindow(int id) : m_activeViewContainer(0), m_centralWidgetLayout(0), m_searchBox(0), + m_searchOptionsConfigurator(0), m_id(id), m_tabIndex(0), m_viewTab(), @@ -426,7 +428,15 @@ void DolphinMainWindow::closeEvent(QCloseEvent* event) DolphinSettings& settings = DolphinSettings::instance(); GeneralSettings* generalSettings = settings.generalSettings(); - if ((m_viewTab.count() > 1) && generalSettings->confirmClosingMultipleTabs()) { + // Find out if Dolphin is closed directly by the user or + // by the session manager because the session is closed + bool closedByUser = true; + DolphinApplication *application = qobject_cast(qApp); + if (application && application->sessionSaving()) { + closedByUser = false; + } + + if ((m_viewTab.count() > 1) && generalSettings->confirmClosingMultipleTabs() && closedByUser) { // Ask the user if he really wants to quit and close all tabs. // Open a confirmation dialog with 3 buttons: // KDialog::Yes -> Quit @@ -859,7 +869,7 @@ void DolphinMainWindow::setActiveTab(int index) m_tabIndex = index; ViewTab& viewTab = m_viewTab[index]; - m_centralWidgetLayout->addWidget(viewTab.splitter); + m_centralWidgetLayout->addWidget(viewTab.splitter, 1); viewTab.primaryView->show(); if (viewTab.secondaryView != 0) { viewTab.secondaryView->show(); @@ -975,6 +985,11 @@ void DolphinMainWindow::slotTabMoved(int from, int to) m_tabIndex = m_tabBar->currentIndex(); } +void DolphinMainWindow::slotSearchBoxTextChanged(const QString& text) +{ + m_searchOptionsConfigurator->setVisible(!text.isEmpty()); +} + void DolphinMainWindow::init() { DolphinSettings& settings = DolphinSettings::instance(); @@ -1015,6 +1030,9 @@ void DolphinMainWindow::init() connect(this, SIGNAL(urlChanged(const KUrl&)), m_remoteEncoding, SLOT(slotAboutToOpenUrl())); + m_searchOptionsConfigurator = new DolphinSearchOptionsConfigurator(this); + m_searchOptionsConfigurator->hide(); + m_tabBar = new KTabBar(this); m_tabBar->setMovable(true); m_tabBar->setTabsClosable(true); @@ -1041,8 +1059,9 @@ void DolphinMainWindow::init() m_centralWidgetLayout = new QVBoxLayout(centralWidget); m_centralWidgetLayout->setSpacing(0); m_centralWidgetLayout->setMargin(0); + m_centralWidgetLayout->addWidget(m_searchOptionsConfigurator); m_centralWidgetLayout->addWidget(m_tabBar); - m_centralWidgetLayout->addWidget(m_viewTab[m_tabIndex].splitter); + m_centralWidgetLayout->addWidget(m_viewTab[m_tabIndex].splitter, 1); setCentralWidget(centralWidget); setupDockWidgets(); @@ -1052,6 +1071,8 @@ void DolphinMainWindow::init() m_searchBox->setParent(toolBar("searchToolBar")); m_searchBox->show(); + connect(m_searchBox, SIGNAL(textChanged(const QString&)), + this, SLOT(slotSearchBoxTextChanged(const QString&))); stateChanged("new_file"); @@ -1156,7 +1177,11 @@ void DolphinMainWindow::setupActions() cutShortcut.remove(Qt::SHIFT + Qt::Key_Delete, KShortcut::KeepEmpty); cut->setShortcut(cutShortcut); KStandardAction::copy(this, SLOT(copy()), actionCollection()); - KStandardAction::paste(this, SLOT(paste()), actionCollection()); + KAction* paste = KStandardAction::paste(this, SLOT(paste()), actionCollection()); + // The text of the paste-action is modified dynamically by Dolphin + // (e. g. to "Paste One Folder"). To prevent that the size of the toolbar changes + // due to the long text, the text "Paste" is used: + paste->setIconText(i18nc("@action:inmenu Edit", "Paste")); KAction* selectAll = actionCollection()->addAction("select_all"); selectAll->setText(i18nc("@action:inmenu Edit", "Select All")); @@ -1228,6 +1253,7 @@ void DolphinMainWindow::setupActions() KToggleAction* showFilterBar = actionCollection()->add("show_filter_bar"); showFilterBar->setText(i18nc("@action:inmenu Tools", "Show Filter Bar")); + showFilterBar->setIcon(KIcon("view-filter")); showFilterBar->setShortcut(Qt::CTRL | Qt::Key_I); connect(showFilterBar, SIGNAL(triggered(bool)), this, SLOT(toggleFilterBarVisibility(bool)));