+ m_activeViewContainer->statusBar()->resetToDefaultText();
+}
+
+void DolphinMainWindow::connectViewSignals(DolphinViewContainer* container)
+{
+ connect(container, &DolphinViewContainer::showFilterBarChanged,
+ this, &DolphinMainWindow::updateFilterBarAction);
+ connect(container, &DolphinViewContainer::writeStateChanged,
+ this, &DolphinMainWindow::slotWriteStateChanged);
+
+ const DolphinView* view = container->view();
+ connect(view, &DolphinView::selectionChanged,
+ this, &DolphinMainWindow::slotSelectionChanged);
+ connect(view, &DolphinView::requestItemInfo,
+ this, &DolphinMainWindow::requestItemInfo);
+ connect(view, &DolphinView::tabRequested,
+ this, &DolphinMainWindow::openNewTab);
+ connect(view, &DolphinView::requestContextMenu,
+ this, &DolphinMainWindow::openContextMenu);
+ connect(view, &DolphinView::directoryLoadingStarted,
+ this, &DolphinMainWindow::enableStopAction);
+ connect(view, &DolphinView::directoryLoadingCompleted,
+ this, &DolphinMainWindow::disableStopAction);
+ connect(view, &DolphinView::directoryLoadingCompleted,
+ this, &DolphinMainWindow::slotDirectoryLoadingCompleted);
+ connect(view, &DolphinView::goBackRequested,
+ this, static_cast<void(DolphinMainWindow::*)()>(&DolphinMainWindow::goBack));
+ connect(view, &DolphinView::goForwardRequested,
+ this, static_cast<void(DolphinMainWindow::*)()>(&DolphinMainWindow::goForward));
+
+ const KUrlNavigator* navigator = container->urlNavigator();
+ connect(navigator, &KUrlNavigator::urlChanged,
+ this, &DolphinMainWindow::changeUrl);
+ connect(navigator, &KUrlNavigator::historyChanged,
+ this, &DolphinMainWindow::updateHistory);
+ connect(navigator, &KUrlNavigator::editableStateChanged,
+ this, &DolphinMainWindow::slotEditableStateChanged);
+ connect(navigator, &KUrlNavigator::tabRequested,
+ this, &DolphinMainWindow::openNewTab);
+}
+
+void DolphinMainWindow::updateSplitAction()
+{
+ QAction* splitAction = actionCollection()->action("split_view");
+ const DolphinTabPage* tabPage = m_tabWidget->currentTabPage();
+ if (tabPage->splitViewEnabled()) {
+ if (tabPage->primaryViewActive()) {
+ splitAction->setText(i18nc("@action:intoolbar Close left view", "Close"));
+ splitAction->setToolTip(i18nc("@info", "Close left view"));
+ splitAction->setIcon(QIcon::fromTheme("view-left-close"));
+ } else {
+ splitAction->setText(i18nc("@action:intoolbar Close right view", "Close"));
+ splitAction->setToolTip(i18nc("@info", "Close right view"));
+ splitAction->setIcon(QIcon::fromTheme("view-right-close"));
+ }
+ } else {
+ splitAction->setText(i18nc("@action:intoolbar Split view", "Split"));
+ splitAction->setToolTip(i18nc("@info", "Split view"));
+ splitAction->setIcon(QIcon::fromTheme("view-right-new"));
+ }
+}
+
+bool DolphinMainWindow::isKompareInstalled() const
+{
+ static bool initialized = false;
+ static bool installed = false;
+ if (!initialized) {
+ // TODO: maybe replace this approach later by using a menu
+ // plugin like kdiff3plugin.cpp
+ installed = !QStandardPaths::findExecutable(QStringLiteral("kompare")).isEmpty();
+ initialized = true;
+ }
+ return installed;
+}
+
+void DolphinMainWindow::createPanelAction(const QIcon& icon,
+ const QKeySequence& shortcut,
+ QAction* dockAction,
+ const QString& actionName)
+{
+ QAction* panelAction = actionCollection()->addAction(actionName);
+ panelAction->setCheckable(true);
+ panelAction->setChecked(dockAction->isChecked());
+ panelAction->setText(dockAction->text());
+ panelAction->setIcon(icon);
+ actionCollection()->setDefaultShortcut(panelAction, shortcut);
+
+ connect(panelAction, &QAction::triggered, dockAction, &QAction::trigger);
+ connect(dockAction, &QAction::toggled, panelAction, &QAction::setChecked);