Changeset View
Changeset View
Standalone View
Standalone View
src/dolphinmainwindow.cpp
Show All 19 Lines | |||||
20 | ***************************************************************************/ | 20 | ***************************************************************************/ | ||
21 | 21 | | |||
22 | #include "dolphinmainwindow.h" | 22 | #include "dolphinmainwindow.h" | ||
23 | 23 | | |||
24 | #include "global.h" | 24 | #include "global.h" | ||
25 | #include "dolphindockwidget.h" | 25 | #include "dolphindockwidget.h" | ||
26 | #include "dolphincontextmenu.h" | 26 | #include "dolphincontextmenu.h" | ||
27 | #include "dolphinnewfilemenu.h" | 27 | #include "dolphinnewfilemenu.h" | ||
28 | #include "dolphinplacesmodelsingleton.h" | | |||
29 | #include "dolphinrecenttabsmenu.h" | 28 | #include "dolphinrecenttabsmenu.h" | ||
30 | #include "dolphintabwidget.h" | 29 | #include "dolphintabwidget.h" | ||
31 | #include "dolphinviewcontainer.h" | 30 | #include "dolphinviewcontainer.h" | ||
32 | #include "dolphintabpage.h" | 31 | #include "dolphintabpage.h" | ||
33 | #include "middleclickactioneventfilter.h" | 32 | #include "middleclickactioneventfilter.h" | ||
34 | #include "panels/folders/folderspanel.h" | 33 | #include "panels/folders/folderspanel.h" | ||
35 | #include "panels/places/placespanel.h" | 34 | #include "panels/places/placespanel.h" | ||
36 | #include "panels/information/informationpanel.h" | 35 | #include "panels/information/informationpanel.h" | ||
37 | #include "panels/terminal/terminalpanel.h" | 36 | #include "panels/terminal/terminalpanel.h" | ||
38 | #include "settings/dolphinsettingsdialog.h" | 37 | #include "settings/dolphinsettingsdialog.h" | ||
39 | #include "statusbar/dolphinstatusbar.h" | 38 | #include "statusbar/dolphinstatusbar.h" | ||
40 | #include "views/dolphinviewactionhandler.h" | 39 | #include "views/dolphinviewactionhandler.h" | ||
41 | #include "views/dolphinremoteencoding.h" | 40 | #include "views/dolphinremoteencoding.h" | ||
42 | #include "views/draganddrophelper.h" | 41 | #include "views/draganddrophelper.h" | ||
43 | #include "views/viewproperties.h" | 42 | #include "views/viewproperties.h" | ||
44 | #include "views/dolphinnewfilemenuobserver.h" | 43 | #include "views/dolphinnewfilemenuobserver.h" | ||
45 | #include "dolphin_generalsettings.h" | 44 | #include "dolphin_generalsettings.h" | ||
46 | 45 | | |||
47 | #include <KActionCollection> | 46 | #include <KActionCollection> | ||
48 | #include <KActionMenu> | 47 | #include <KActionMenu> | ||
49 | #include <KAuthorized> | 48 | #include <KAuthorized> | ||
50 | #include <KConfig> | 49 | #include <KConfig> | ||
51 | #include <KFileItemListProperties> | 50 | #include <KFileItemListProperties> | ||
52 | #include <KFilePlacesModel> | | |||
53 | #include <KHelpMenu> | 51 | #include <KHelpMenu> | ||
54 | #include <KIO/JobUiDelegate> | 52 | #include <KIO/JobUiDelegate> | ||
55 | #include <KIO/OpenFileManagerWindowJob> | 53 | #include <KIO/OpenFileManagerWindowJob> | ||
56 | #include <KJobWidgets> | 54 | #include <KJobWidgets> | ||
57 | #include <KLocalizedString> | 55 | #include <KLocalizedString> | ||
58 | #include <KMessageBox> | 56 | #include <KMessageBox> | ||
59 | #include <KProtocolInfo> | 57 | #include <KProtocolInfo> | ||
60 | #include <KProtocolManager> | 58 | #include <KProtocolManager> | ||
▲ Show 20 Lines • Show All 71 Lines • ▼ Show 20 Line(s) | 103 | { | |||
132 | 130 | | |||
133 | m_tabWidget = new DolphinTabWidget(this); | 131 | m_tabWidget = new DolphinTabWidget(this); | ||
134 | m_tabWidget->setObjectName("tabWidget"); | 132 | m_tabWidget->setObjectName("tabWidget"); | ||
135 | connect(m_tabWidget, &DolphinTabWidget::activeViewChanged, | 133 | connect(m_tabWidget, &DolphinTabWidget::activeViewChanged, | ||
136 | this, &DolphinMainWindow::activeViewChanged); | 134 | this, &DolphinMainWindow::activeViewChanged); | ||
137 | connect(m_tabWidget, &DolphinTabWidget::tabCountChanged, | 135 | connect(m_tabWidget, &DolphinTabWidget::tabCountChanged, | ||
138 | this, &DolphinMainWindow::tabCountChanged); | 136 | this, &DolphinMainWindow::tabCountChanged); | ||
139 | connect(m_tabWidget, &DolphinTabWidget::currentUrlChanged, | 137 | connect(m_tabWidget, &DolphinTabWidget::currentUrlChanged, | ||
140 | this, &DolphinMainWindow::setUrlAsCaption); | 138 | this, &DolphinMainWindow::updateWindowTitle); | ||
141 | setCentralWidget(m_tabWidget); | 139 | setCentralWidget(m_tabWidget); | ||
142 | 140 | | |||
143 | setupActions(); | 141 | setupActions(); | ||
144 | 142 | | |||
145 | m_actionHandler = new DolphinViewActionHandler(actionCollection(), this); | 143 | m_actionHandler = new DolphinViewActionHandler(actionCollection(), this); | ||
146 | connect(m_actionHandler, &DolphinViewActionHandler::actionBeingHandled, this, &DolphinMainWindow::clearStatusBar); | 144 | connect(m_actionHandler, &DolphinViewActionHandler::actionBeingHandled, this, &DolphinMainWindow::clearStatusBar); | ||
147 | connect(m_actionHandler, &DolphinViewActionHandler::createDirectory, this, &DolphinMainWindow::createDirectory); | 145 | connect(m_actionHandler, &DolphinViewActionHandler::createDirectory, this, &DolphinMainWindow::createDirectory); | ||
148 | 146 | | |||
▲ Show 20 Lines • Show All 847 Lines • ▼ Show 20 Line(s) | |||||
996 | void DolphinMainWindow::tabCountChanged(int count) | 994 | void DolphinMainWindow::tabCountChanged(int count) | ||
997 | { | 995 | { | ||
998 | const bool enableTabActions = (count > 1); | 996 | const bool enableTabActions = (count > 1); | ||
999 | actionCollection()->action(KStandardAction::name(KStandardAction::Close))->setEnabled(enableTabActions); | 997 | actionCollection()->action(KStandardAction::name(KStandardAction::Close))->setEnabled(enableTabActions); | ||
1000 | actionCollection()->action(QStringLiteral("activate_next_tab"))->setEnabled(enableTabActions); | 998 | actionCollection()->action(QStringLiteral("activate_next_tab"))->setEnabled(enableTabActions); | ||
1001 | actionCollection()->action(QStringLiteral("activate_prev_tab"))->setEnabled(enableTabActions); | 999 | actionCollection()->action(QStringLiteral("activate_prev_tab"))->setEnabled(enableTabActions); | ||
1002 | } | 1000 | } | ||
1003 | 1001 | | |||
1004 | void DolphinMainWindow::setUrlAsCaption(const QUrl& url) | 1002 | void DolphinMainWindow::updateWindowTitle() | ||
1005 | { | 1003 | { | ||
1006 | QString schemePrefix; | 1004 | setWindowTitle(m_activeViewContainer->getCaption()); | ||
1007 | if (!url.isLocalFile()) { | | |||
1008 | schemePrefix.append(url.scheme() + " - "); | | |||
1009 | if (!url.host().isEmpty()) { | | |||
1010 | schemePrefix.append(url.host() + " - "); | | |||
1011 | } | | |||
1012 | } | | |||
1013 | | ||||
1014 | if (GeneralSettings::showFullPathInTitlebar()) { | | |||
1015 | const QString path = url.adjusted(QUrl::StripTrailingSlash).path(); | | |||
1016 | setWindowTitle(schemePrefix + path); | | |||
1017 | return; | | |||
1018 | } | | |||
1019 | | ||||
1020 | KFilePlacesModel *placesModel = DolphinPlacesModelSingleton::instance().placesModel(); | | |||
1021 | const auto& matchedPlaces = placesModel->match(placesModel->index(0,0), KFilePlacesModel::UrlRole, url, 1, Qt::MatchExactly); | | |||
1022 | | ||||
1023 | if (!matchedPlaces.isEmpty()) { | | |||
1024 | setWindowTitle(placesModel->text(matchedPlaces.first())); | | |||
1025 | return; | | |||
1026 | } | | |||
1027 | | ||||
1028 | QString fileName = url.adjusted(QUrl::StripTrailingSlash).fileName(); | | |||
1029 | if (fileName.isEmpty()) { | | |||
1030 | fileName = '/'; | | |||
1031 | } | | |||
1032 | | ||||
1033 | if (m_activeViewContainer->isSearchModeEnabled()) { | | |||
1034 | if(m_activeViewContainer->currentSearchText().isEmpty()){ | | |||
1035 | setWindowTitle(i18n("Search")); | | |||
1036 | } else { | | |||
1037 | const auto searchText = i18n("Search for %1", m_activeViewContainer->currentSearchText()); | | |||
1038 | setWindowTitle(searchText); | | |||
1039 | } | | |||
1040 | return; | | |||
1041 | } | | |||
1042 | | ||||
1043 | setWindowTitle(schemePrefix + fileName); | | |||
1044 | } | 1005 | } | ||
1045 | 1006 | | |||
1046 | void DolphinMainWindow::slotStorageTearDownFromPlacesRequested(const QString& mountPath) | 1007 | void DolphinMainWindow::slotStorageTearDownFromPlacesRequested(const QString& mountPath) | ||
1047 | { | 1008 | { | ||
1048 | if (m_terminalPanel->currentWorkingDirectory().startsWith(mountPath)) { | 1009 | if (m_terminalPanel->currentWorkingDirectory().startsWith(mountPath)) { | ||
1049 | m_tearDownFromPlacesRequested = true; | 1010 | m_tearDownFromPlacesRequested = true; | ||
1050 | m_terminalPanel->goHome(); | 1011 | m_terminalPanel->goHome(); | ||
1051 | // m_placesPanel->proceedWithTearDown() will be called in slotTerminalDirectoryChanged | 1012 | // m_placesPanel->proceedWithTearDown() will be called in slotTerminalDirectoryChanged | ||
▲ Show 20 Lines • Show All 444 Lines • ▼ Show 20 Line(s) | 1456 | { | |||
1496 | m_tabWidget->refreshViews(); | 1457 | m_tabWidget->refreshViews(); | ||
1497 | 1458 | | |||
1498 | if (GeneralSettings::modifiedStartupSettings()) { | 1459 | if (GeneralSettings::modifiedStartupSettings()) { | ||
1499 | // The startup settings have been changed by the user (see bug #254947). | 1460 | // The startup settings have been changed by the user (see bug #254947). | ||
1500 | // Synchronize the split-view setting with the active view: | 1461 | // Synchronize the split-view setting with the active view: | ||
1501 | const bool splitView = GeneralSettings::splitView(); | 1462 | const bool splitView = GeneralSettings::splitView(); | ||
1502 | m_tabWidget->currentTabPage()->setSplitViewEnabled(splitView); | 1463 | m_tabWidget->currentTabPage()->setSplitViewEnabled(splitView); | ||
1503 | updateSplitAction(); | 1464 | updateSplitAction(); | ||
1504 | setUrlAsCaption(activeViewContainer()->url()); | 1465 | updateWindowTitle(); | ||
1505 | } | 1466 | } | ||
1506 | 1467 | | |||
1507 | emit settingsChanged(); | 1468 | emit settingsChanged(); | ||
1508 | } | 1469 | } | ||
1509 | 1470 | | |||
1510 | void DolphinMainWindow::clearStatusBar() | 1471 | void DolphinMainWindow::clearStatusBar() | ||
1511 | { | 1472 | { | ||
1512 | m_activeViewContainer->statusBar()->resetToDefaultText(); | 1473 | m_activeViewContainer->statusBar()->resetToDefaultText(); | ||
▲ Show 20 Lines • Show All 112 Lines • Show Last 20 Lines |