m_actionHandler = new DolphinViewActionHandler(actionCollection(), m_actionTextHelper, this);
connect(m_actionHandler, &DolphinViewActionHandler::actionBeingHandled, this, &DolphinMainWindow::clearStatusBar);
connect(m_actionHandler, &DolphinViewActionHandler::createDirectoryTriggered, this, &DolphinMainWindow::createDirectory);
+ connect(m_actionHandler, &DolphinViewActionHandler::createFileTriggered, this, &DolphinMainWindow::createFile);
connect(m_actionHandler, &DolphinViewActionHandler::selectionModeChangeTriggered, this, &DolphinMainWindow::slotSetSelectionMode);
- Q_CHECK_PTR(actionCollection()->action(QStringLiteral("create_dir")));
- m_newFileMenu->setNewFolderShortcutAction(actionCollection()->action(QStringLiteral("create_dir")));
+ QAction *newDirAction = actionCollection()->action(QStringLiteral("create_dir"));
+ Q_CHECK_PTR(newDirAction);
+ m_newFileMenu->setNewFolderShortcutAction(newDirAction);
+
+ QAction *newFileAction = actionCollection()->action(QStringLiteral("create_file"));
+ Q_CHECK_PTR(newFileAction);
+ m_newFileMenu->setNewFileShortcutAction(newFileAction);
m_remoteEncoding = new DolphinRemoteEncoding(this, m_actionHandler);
connect(this, &DolphinMainWindow::urlChanged, m_remoteEncoding, &DolphinRemoteEncoding::slotAboutToOpenUrl);
}
}
+void DolphinMainWindow::createFile()
+{
+ // Use the same logic as in createDirectory()
+ if (!m_newFileMenu->isCreateFileRunning()) {
+ m_newFileMenu->setWorkingDirectory(activeViewContainer()->url());
+ m_newFileMenu->createFile();
+ }
+}
+
void DolphinMainWindow::quit()
{
close();
newFileMenu()->setEnabled(isFolderWritable && m_activeViewContainer->url().scheme() != QLatin1String("trash"));
// When the menu is disabled, actions in it are disabled later in the event loop, and we need to set the disabled reason after that.
QTimer::singleShot(0, this, [this]() {
+ m_disabledActionNotifier->setDisabledReason(actionCollection()->action(QStringLiteral("create_file")),
+ i18nc("@info", "Cannot create new file: You do not have permission to create items in this folder."));
m_disabledActionNotifier->setDisabledReason(actionCollection()->action(QStringLiteral("create_dir")),
i18nc("@info", "Cannot create new folder: You do not have permission to create items in this folder."));
});
auto hamburgerMenuAction = KStandardAction::hamburgerMenu(nullptr, nullptr, actionCollection());
// setup 'File' menu
- m_newFileMenu = new DolphinNewFileMenu(nullptr, this);
+ m_newFileMenu = new DolphinNewFileMenu(nullptr, nullptr, this);
actionCollection()->addAction(QStringLiteral("new_menu"), m_newFileMenu);
QMenu *menu = m_newFileMenu->menu();
menu->setTitle(i18nc("@title:menu Create new folder, file, link, etc.", "Create New"));
&DolphinMainWindow::toggleShowMenuBar,
Qt::QueuedConnection);
- KToggleAction *showStatusBar = KStandardAction::showStatusbar(nullptr, nullptr, actionCollection());
- showStatusBar->setChecked(GeneralSettings::showStatusBar());
- connect(GeneralSettings::self(), &GeneralSettings::showStatusBarChanged, showStatusBar, &KToggleAction::setChecked);
- connect(showStatusBar, &KToggleAction::triggered, this, [this](bool checked) {
- GeneralSettings::setShowStatusBar(checked);
- refreshViews();
- });
-
KStandardAction::keyBindings(this, &DolphinMainWindow::slotKeyBindings, actionCollection());
KStandardAction::preferences(this, &DolphinMainWindow::editSettings, actionCollection());
QAction *openInSplitViewAction = actionCollection()->addAction(QStringLiteral("open_in_split_view"));
openInSplitViewAction->setText(i18nc("@action:inmenu", "Open in Split View"));
- openInSplitViewAction->setIcon(QIcon::fromTheme(QStringLiteral("view-right-new")));
+ openInSplitViewAction->setIcon(QIcon::fromTheme(QStringLiteral("view-split-left-right")));
connect(openInSplitViewAction, &QAction::triggered, this, [this]() {
openInSplitView(QUrl());
});
m_splitViewAction->setText(i18nc("@action:intoolbar Close left view", "Close"));
m_splitViewAction->setToolTip(i18nc("@info", "Close left view"));
m_splitViewAction->setIcon(QIcon::fromTheme(QStringLiteral("view-left-close")));
+ m_splitViewMenuAction->setText(i18nc("@action:inmenu Close left view", "Close Left View"));
+
popoutSplitAction->setText(i18nc("@action:intoolbar Move left view to a new window", "Pop out Left View"));
popoutSplitAction->setToolTip(i18nc("@info", "Move left view to a new window"));
} else {
m_splitViewAction->setText(i18nc("@action:intoolbar Close right view", "Close"));
m_splitViewAction->setToolTip(i18nc("@info", "Close right view"));
m_splitViewAction->setIcon(QIcon::fromTheme(QStringLiteral("view-right-close")));
+ m_splitViewMenuAction->setText(i18nc("@action:inmenu Close left view", "Close Right View"));
+
popoutSplitAction->setText(i18nc("@action:intoolbar Move right view to a new window", "Pop out Right View"));
popoutSplitAction->setToolTip(i18nc("@info", "Move right view to a new window"));
}
}
} else {
m_splitViewAction->setText(i18nc("@action:intoolbar Split view", "Split"));
+ m_splitViewMenuAction->setText(m_splitViewAction->text());
m_splitViewAction->setToolTip(i18nc("@info", "Split view"));
- m_splitViewAction->setIcon(QIcon::fromTheme(QStringLiteral("view-right-new")));
+ m_splitViewAction->setIcon(QIcon::fromTheme(QStringLiteral("view-split-left-right")));
popoutSplitAction->setText(i18nc("@action:intoolbar Move view in focus to a new window", "Pop out"));
popoutSplitAction->setEnabled(false);
if (m_splitViewAction->menu()) {
}
// Update state from toolbar action
- m_splitViewMenuAction->setText(m_splitViewAction->text());
m_splitViewMenuAction->setToolTip(m_splitViewAction->toolTip());
m_splitViewMenuAction->setIcon(m_splitViewAction->icon());
}