+ added = addActionToMenu(ac->action("view_mode"), menu) |
+ addActionToMenu(ac->action("sort"), menu) |
+ addActionToMenu(ac->action("additional_info"), menu) |
+ addActionToMenu(ac->action("show_preview"), menu) |
+ addActionToMenu(ac->action("show_in_groups"), menu) |
+ addActionToMenu(ac->action("show_hidden_files"), menu);
+
+ if (added) {
+ menu->addSeparator();
+ }
+
+ added = addActionToMenu(ac->action("split_view"), menu) |
+ addActionToMenu(ac->action("reload"), menu) |
+ addActionToMenu(ac->action("view_properties"), menu);
+ if (added) {
+ menu->addSeparator();
+ }
+
+ addActionToMenu(ac->action("panels"), menu);
+ KMenu* locationBarMenu = new KMenu(i18nc("@action:inmenu", "Location Bar"), menu);
+ locationBarMenu->addAction(ac->action("editable_location"));
+ locationBarMenu->addAction(ac->action("replace_location"));
+ menu->addMenu(locationBarMenu);
+
+ menu->addSeparator();
+
+ // Add "Go" menu
+ KMenu* goMenu = new KMenu(i18nc("@action:inmenu", "Go"), menu);
+ connect(menu, SIGNAL(aboutToHide()), goMenu, SLOT(deleteLater()));
+ goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Back)));
+ goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Forward)));
+ goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Up)));
+ goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Home)));
+ goMenu->addAction(ac->action("closed_tabs"));
+ menu->addMenu(goMenu);
+
+ // Add "Tool" menu
+ KMenu* toolsMenu = new KMenu(i18nc("@action:inmenu", "Tools"), menu);
+ connect(menu, SIGNAL(aboutToHide()), toolsMenu, SLOT(deleteLater()));
+ toolsMenu->addAction(ac->action("show_filter_bar"));
+ toolsMenu->addAction(ac->action("compare_files"));
+ toolsMenu->addAction(ac->action("open_terminal"));
+ toolsMenu->addAction(ac->action("change_remote_encoding"));
+ menu->addMenu(toolsMenu);
+
+ // Add "Settings" menu entries
+ addActionToMenu(ac->action(KStandardAction::name(KStandardAction::KeyBindings)), menu);
+ addActionToMenu(ac->action(KStandardAction::name(KStandardAction::ConfigureToolbars)), menu);
+ addActionToMenu(ac->action(KStandardAction::name(KStandardAction::Preferences)), menu);
+
+ // Add "Help" menu
+ KMenu* helpMenu = new KMenu(i18nc("@action:inmenu", "Help"), menu);
+ connect(menu, SIGNAL(aboutToHide()), helpMenu, SLOT(deleteLater()));
+ helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::HelpContents)));
+ helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::WhatsThis)));
+ helpMenu->addSeparator();
+ helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::ReportBug)));
+ helpMenu->addSeparator();
+ helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::SwitchApplicationLanguage)));
+ helpMenu->addSeparator();
+ helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::AboutApp)));
+ helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::AboutKDE)));
+ menu->addMenu(helpMenu);
+
+ menu->addSeparator();
+ addActionToMenu(ac->action(KStandardAction::name(KStandardAction::ShowMenubar)), menu);
+}
+
+void DolphinMainWindow::updateToolBar()
+{
+ if (!menuBar()->isVisible()) {
+ createControlButton();
+ }
+}
+
+void DolphinMainWindow::slotControlButtonDeleted()
+{
+ m_controlButton = 0;
+ m_updateToolBarTimer->start();
+}
+
+void DolphinMainWindow::slotPanelErrorMessage(const QString& error)
+{
+ activeViewContainer()->showMessage(error, DolphinViewContainer::Error);
+}
+
+void DolphinMainWindow::setActiveViewContainer(DolphinViewContainer* viewContainer)
+{
+ Q_ASSERT(viewContainer);
+ Q_ASSERT((viewContainer == m_viewTab[m_tabIndex].primaryView) ||
+ (viewContainer == m_viewTab[m_tabIndex].secondaryView));
+ if (m_activeViewContainer == viewContainer) {
+ return;
+ }
+
+ m_activeViewContainer->setActive(false);
+ m_activeViewContainer = viewContainer;
+
+ // Activating the view container might trigger a recursive setActiveViewContainer() call
+ // inside DolphinMainWindow::toggleActiveView() when having a split view. Temporary
+ // disconnect the activated() signal in this case:
+ disconnect(m_activeViewContainer->view(), SIGNAL(activated()), this, SLOT(toggleActiveView()));
+ m_activeViewContainer->setActive(true);
+ connect(m_activeViewContainer->view(), SIGNAL(activated()), this, SLOT(toggleActiveView()));
+
+ m_actionHandler->setCurrentView(viewContainer->view());
+
+ updateHistory();
+ updateEditActions();
+ updateViewActions();
+ updateGoActions();
+
+ const KUrl url = m_activeViewContainer->url();
+ setUrlAsCaption(url);
+ if (m_viewTab.count() > 1) {
+ m_tabBar->setTabText(m_tabIndex, tabName(url));
+ m_tabBar->setTabIcon(m_tabIndex, KIcon(KMimeType::iconNameForUrl(url)));
+ }
+
+ emit urlChanged(url);
+}
+
+DolphinViewContainer* DolphinMainWindow::createViewContainer(const KUrl& url, QWidget* parent)
+{
+ DolphinViewContainer* container = new DolphinViewContainer(url, parent);
+
+ // The places-selector from the URL navigator should only be shown
+ // if the places dock is invisible
+ QDockWidget* placesDock = findChild<QDockWidget*>("placesDock");
+ container->urlNavigator()->setPlacesSelectorVisible(!placesDock || !placesDock->isVisible());
+
+ return container;
+}
+
+void DolphinMainWindow::setupActions()
+{
+ // setup 'File' menu
+ m_newFileMenu = new DolphinNewFileMenu(this);
+ KMenu* menu = m_newFileMenu->menu();
+ menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
+ menu->setIcon(KIcon("document-new"));
+ m_newFileMenu->setDelayed(false);
+ connect(menu, SIGNAL(aboutToShow()),
+ this, SLOT(updateNewMenu()));
+
+ KAction* newWindow = actionCollection()->addAction("new_window");
+ newWindow->setIcon(KIcon("window-new"));
+ newWindow->setText(i18nc("@action:inmenu File", "New &Window"));
+ newWindow->setShortcut(Qt::CTRL | Qt::Key_N);
+ connect(newWindow, SIGNAL(triggered()), this, SLOT(openNewMainWindow()));
+
+ KAction* newTab = actionCollection()->addAction("new_tab");
+ newTab->setIcon(KIcon("tab-new"));
+ newTab->setText(i18nc("@action:inmenu File", "New Tab"));
+ newTab->setShortcut(KShortcut(Qt::CTRL | Qt::Key_T, Qt::CTRL | Qt::SHIFT | Qt::Key_N));
+ connect(newTab, SIGNAL(triggered()), this, SLOT(openNewTab()));
+
+ KAction* closeTab = actionCollection()->addAction("close_tab");
+ closeTab->setIcon(KIcon("tab-close"));
+ closeTab->setText(i18nc("@action:inmenu File", "Close Tab"));
+ closeTab->setShortcut(Qt::CTRL | Qt::Key_W);
+ closeTab->setEnabled(false);
+ connect(closeTab, SIGNAL(triggered()), this, SLOT(closeTab()));
+
+ KStandardAction::quit(this, SLOT(quit()), actionCollection());