- // setup 'View' menu
- KStandardAction::zoomIn(this,
- SLOT(zoomIn()),
- actionCollection());
-
- KStandardAction::zoomOut(this,
- SLOT(zoomOut()),
- actionCollection());
-
-
- KToggleAction* iconsView = DolphinView::iconsModeAction(actionCollection());
- KToggleAction* detailsView = DolphinView::detailsModeAction(actionCollection());
- KToggleAction* columnView = DolphinView::columnsModeAction(actionCollection());
-
- QActionGroup* viewModeGroup = new QActionGroup(this);
- viewModeGroup->addAction(iconsView);
- viewModeGroup->addAction(detailsView);
- viewModeGroup->addAction(columnView);
- connect(viewModeGroup, SIGNAL(triggered(QAction*)), this, SLOT(setViewMode(QAction*)));
-
- // TODO use a QActionGroup
-
- KToggleAction* sortByName = actionCollection()->add<KToggleAction>("sort_by_name");
- sortByName->setText(i18nc("@action:inmenu Sort By", "Name"));
- connect(sortByName, SIGNAL(triggered()), this, SLOT(sortByName()));
-
- KToggleAction* sortBySize = actionCollection()->add<KToggleAction>("sort_by_size");
- sortBySize->setText(i18nc("@action:inmenu Sort By", "Size"));
- connect(sortBySize, SIGNAL(triggered()), this, SLOT(sortBySize()));
-
- KToggleAction* sortByDate = actionCollection()->add<KToggleAction>("sort_by_date");
- sortByDate->setText(i18nc("@action:inmenu Sort By", "Date"));
- connect(sortByDate, SIGNAL(triggered()), this, SLOT(sortByDate()));
-
- KToggleAction* sortByPermissions = actionCollection()->add<KToggleAction>("sort_by_permissions");
- sortByPermissions->setText(i18nc("@action:inmenu Sort By", "Permissions"));
- connect(sortByPermissions, SIGNAL(triggered()), this, SLOT(sortByPermissions()));
-
- KToggleAction* sortByOwner = actionCollection()->add<KToggleAction>("sort_by_owner");
- sortByOwner->setText(i18nc("@action:inmenu Sort By", "Owner"));
- connect(sortByOwner, SIGNAL(triggered()), this, SLOT(sortByOwner()));
-
- KToggleAction* sortByGroup = actionCollection()->add<KToggleAction>("sort_by_group");
- sortByGroup->setText(i18nc("@action:inmenu Sort By", "Group"));
- connect(sortByGroup, SIGNAL(triggered()), this, SLOT(sortByGroup()));
-
- KToggleAction* sortByType = actionCollection()->add<KToggleAction>("sort_by_type");
- sortByType->setText(i18nc("@action:inmenu Sort By", "Type"));
- connect(sortByType, SIGNAL(triggered()), this, SLOT(sortByType()));
-
- // TODO: Hided "sort by rating" and "sort by tags" as without caching the performance
- // is too slow currently (Nepomuk will support caching in future releases).
- //
- // KToggleAction* sortByRating = actionCollection()->add<KToggleAction>("sort_by_rating");
- // sortByRating->setText(i18nc("@action:inmenu Sort By", "Rating"));
- //
- // KToggleAction* sortByTags = actionCollection()->add<KToggleAction>("sort_by_tags");
- // sortByTags->setText(i18nc("@action:inmenu Sort By", "Tags"));
- //
-#ifdef HAVE_NEPOMUK
- // if (MetaDataWidget::metaDataAvailable()) {
- // connect(sortByRating, SIGNAL(triggered()), this, SLOT(sortByRating()));
- // connect(sortByTags, SIGNAL(triggered()), this, SLOT(sortByTags()));
- // }
- // else {
- // sortByRating->setEnabled(false);
- // sortByTags->setEnabled(false);
- // }
-#else
- // sortByRating->setEnabled(false);
- // sortByTags->setEnabled(false);
-#endif
+void DolphinMainWindow::setupActions()
+{
+ // setup 'File' menu
+ m_newFileMenu = new DolphinNewFileMenu(actionCollection(), this);
+ QMenu* menu = m_newFileMenu->menu();
+ menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
+ menu->setIcon(QIcon::fromTheme(QStringLiteral("document-new")));
+ m_newFileMenu->setDelayed(false);
+ connect(menu, &QMenu::aboutToShow,
+ this, &DolphinMainWindow::updateNewMenu);
+
+ QAction* newWindow = actionCollection()->addAction(QStringLiteral("new_window"));
+ newWindow->setIcon(QIcon::fromTheme(QStringLiteral("window-new")));
+ newWindow->setText(i18nc("@action:inmenu File", "New &Window"));
+ actionCollection()->setDefaultShortcut(newWindow, Qt::CTRL | Qt::Key_N);
+ connect(newWindow, &QAction::triggered, this, &DolphinMainWindow::openNewMainWindow);
+
+ QAction* newTab = actionCollection()->addAction(QStringLiteral("new_tab"));
+ newTab->setIcon(QIcon::fromTheme(QStringLiteral("tab-new")));
+ newTab->setText(i18nc("@action:inmenu File", "New Tab"));
+ actionCollection()->setDefaultShortcuts(newTab, {Qt::CTRL | Qt::Key_T, Qt::CTRL | Qt::SHIFT | Qt::Key_N});
+ connect(newTab, &QAction::triggered, this, static_cast<void(DolphinMainWindow::*)()>(&DolphinMainWindow::openNewActivatedTab));