X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/8e6dbadef2e7f25caed42559c4ffc832e03d387b..2b951e61fa86a53415ed6e8f7a2ac3961a6480c0:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index a95b5a0d2..5d990ab55 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -27,16 +27,16 @@ #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 +109,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(), @@ -165,23 +166,23 @@ void DolphinMainWindow::showCommand(CommandType command) DolphinStatusBar* statusBar = m_activeViewContainer->statusBar(); switch (command) { case KIO::FileUndoManager::Copy: - statusBar->setMessage(i18nc("@info:status", "Copy operation completed."), + statusBar->setMessage(i18nc("@info:status", "Successfully copied."), DolphinStatusBar::OperationCompleted); break; case KIO::FileUndoManager::Move: - statusBar->setMessage(i18nc("@info:status", "Move operation completed."), + statusBar->setMessage(i18nc("@info:status", "Successfully moved."), DolphinStatusBar::OperationCompleted); break; case KIO::FileUndoManager::Link: - statusBar->setMessage(i18nc("@info:status", "Link operation completed."), + statusBar->setMessage(i18nc("@info:status", "Successfully linked."), DolphinStatusBar::OperationCompleted); break; case KIO::FileUndoManager::Trash: - statusBar->setMessage(i18nc("@info:status", "Move to trash operation completed."), + statusBar->setMessage(i18nc("@info:status", "Successfully moved to trash."), DolphinStatusBar::OperationCompleted); break; case KIO::FileUndoManager::Rename: - statusBar->setMessage(i18nc("@info:status", "Renaming operation completed."), + statusBar->setMessage(i18nc("@info:status", "Successfully renamed."), DolphinStatusBar::OperationCompleted); break; @@ -297,11 +298,13 @@ void DolphinMainWindow::updateHistory() const int index = urlNavigator->historyIndex(); QAction* backAction = actionCollection()->action("go_back"); + backAction->setToolTip(i18nc("@info", "Go back")); if (backAction != 0) { backAction->setEnabled(index < urlNavigator->historySize() - 1); } QAction* forwardAction = actionCollection()->action("go_forward"); + forwardAction->setToolTip(i18nc("@info", "Go forward")); if (forwardAction != 0) { forwardAction->setEnabled(index > 0); } @@ -426,7 +429,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 +870,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 +986,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 +1031,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 +1060,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 +1072,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 +1178,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")); @@ -1184,6 +1210,7 @@ void DolphinMainWindow::setupActions() KAction* stop = actionCollection()->addAction("stop"); stop->setText(i18nc("@action:inmenu View", "Stop")); + stop->setToolTip(i18nc("@info", "Stop loading")); stop->setIcon(KIcon("process-stop")); connect(stop, SIGNAL(triggered()), this, SLOT(stopLoading())); @@ -1228,6 +1255,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))); @@ -1498,13 +1526,16 @@ void DolphinMainWindow::updateSplitAction() if (m_viewTab[m_tabIndex].secondaryView != 0) { if (m_activeViewContainer == m_viewTab[m_tabIndex].secondaryView) { splitAction->setText(i18nc("@action:intoolbar Close right view", "Close")); + splitAction->setToolTip(i18nc("@info", "Close right view")); splitAction->setIcon(KIcon("view-right-close")); } else { splitAction->setText(i18nc("@action:intoolbar Close left view", "Close")); + splitAction->setToolTip(i18nc("@info", "Close left view")); splitAction->setIcon(KIcon("view-left-close")); } } else { splitAction->setText(i18nc("@action:intoolbar Split view", "Split")); + splitAction->setToolTip(i18nc("@info", "Split view")); splitAction->setIcon(KIcon("view-right-new")); } }