#include <KAuthorized>
#include <KConfig>
#include <kdualaction.h>
+#include <KHelpMenu>
#include <KJobWidgets>
#include <QLineEdit>
#include <KToolBar>
m_updateToolBarTimer(0),
m_lastHandleUrlStatJob(0)
{
+ Q_INIT_RESOURCE(dolphin);
+
setObjectName(QStringLiteral("Dolphin#"));
connect(&DolphinNewFileMenuObserver::instance(), &DolphinNewFileMenuObserver::errorMessage,
setAcceptDrops(true);
m_tabWidget = new DolphinTabWidget(this);
+ m_tabWidget->setObjectName("tabWidget");
connect(m_tabWidget, &DolphinTabWidget::activeViewChanged,
this, &DolphinMainWindow::activeViewChanged);
connect(m_tabWidget, &DolphinTabWidget::tabCountChanged,
void DolphinMainWindow::openNewMainWindow()
{
- KRun::run(QStringLiteral("dolphin %u"), QList<QUrl>(), this);
+ Dolphin::openNewWindow({m_activeViewContainer->url()}, this);
}
void DolphinMainWindow::openNewActivatedTab()
void DolphinMainWindow::openInNewTab()
{
const KFileItemList& list = m_activeViewContainer->view()->selectedItems();
- if (list.isEmpty()) {
- openNewTab(m_activeViewContainer->url());
- } else {
- foreach (const KFileItem& item, list) {
- const QUrl& url = DolphinView::openItemAsFolderUrl(item);
- if (!url.isEmpty()) {
- openNewTab(url);
- }
+ bool tabCreated = false;
+
+ foreach (const KFileItem& item, list) {
+ const QUrl& url = DolphinView::openItemAsFolderUrl(item);
+ if (!url.isEmpty()) {
+ openNewTab(url);
+ tabCreated = true;
}
}
+
+ // if no new tab has been created from the selection
+ // open the current directory in a new tab
+ if (!tabCreated) {
+ openNewTab(m_activeViewContainer->url());
+ }
}
void DolphinMainWindow::openInNewWindow()
}
if (!newWindowUrl.isEmpty()) {
- KRun::run(QStringLiteral("dolphin %u"), {newWindowUrl}, this);
+ Dolphin::openNewWindow({newWindowUrl}, this);
}
}
actionCollection()->action(QStringLiteral("stop"))->setEnabled(false);
}
-void DolphinMainWindow::showFilterBar(bool show)
+void DolphinMainWindow::showFilterBar()
{
- m_activeViewContainer->setFilterBarVisible(show);
+ m_activeViewContainer->setFilterBarVisible(true);
}
void DolphinMainWindow::toggleEditLocation()
changeUrl(KIO::upUrl(item.url()));
break;
- case DolphinContextMenu::OpenParentFolderInNewWindow: {
-
- KRun::run(QStringLiteral("dolphin %u"), {KIO::upUrl(item.url())}, this);
+ case DolphinContextMenu::OpenParentFolderInNewWindow:
+ Dolphin::openNewWindow({KIO::upUrl(item.url())}, this);
break;
- }
case DolphinContextMenu::OpenParentFolderInNewTab:
openNewTab(KIO::upUrl(item.url()));
addActionToMenu(ac->action(KStandardAction::name(KStandardAction::Preferences)), menu);
// Add "Help" menu
- QMenu* helpMenu = new QMenu(i18nc("@action:inmenu", "Help"), menu);
- 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::Donate)));
- 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);
+ auto helpMenu = new KHelpMenu(menu);
+ menu->addMenu(helpMenu->menu());
menu->addSeparator();
addActionToMenu(ac->action(KStandardAction::name(KStandardAction::ShowMenubar)), menu);
SLOT(undo()),
actionCollection());
- // need to remove shift+del from cut action, else the shortcut for deletejob
- // doesn't work
- QAction* cut = KStandardAction::cut(this, SLOT(cut()), actionCollection());
- auto cutShortcuts = cut->shortcuts();
- cutShortcuts.removeAll(QKeySequence(Qt::SHIFT | Qt::Key_Delete));
- actionCollection()->setDefaultShortcuts(cut, cutShortcuts);
+
+ KStandardAction::cut(this, SLOT(cut()), actionCollection());
KStandardAction::copy(this, SLOT(copy()), actionCollection());
QAction* paste = KStandardAction::paste(this, SLOT(paste()), actionCollection());
// The text of the paste-action is modified dynamically by Dolphin
KStandardAction::home(this, SLOT(goHome()), actionCollection());
// setup 'Tools' menu
- KToggleAction* showFilterBar = actionCollection()->add<KToggleAction>(QStringLiteral("show_filter_bar"));
+ QAction* showFilterBar = actionCollection()->addAction(QStringLiteral("show_filter_bar"));
showFilterBar->setText(i18nc("@action:inmenu Tools", "Show Filter Bar"));
showFilterBar->setIcon(QIcon::fromTheme(QStringLiteral("view-filter")));
actionCollection()->setDefaultShortcut(showFilterBar, Qt::CTRL | Qt::Key_I);
KActionCollection* col = actionCollection();
QAction* renameAction = col->action(QStringLiteral("rename"));
- QAction* moveToTrashAction = col->action(QStringLiteral("move_to_trash"));
- QAction* deleteAction = col->action(QStringLiteral("delete"));
+ QAction* moveToTrashAction = col->action(KStandardAction::name(KStandardAction::MoveToTrash));
+ QAction* deleteAction = col->action(KStandardAction::name(KStandardAction::DeleteFile));
QAction* cutAction = col->action(KStandardAction::name(KStandardAction::Cut));
QAction* deleteWithTrashShortcut = col->action(QStringLiteral("delete_shortcut")); // see DolphinViewActionHandler
this, static_cast<void(DolphinMainWindow::*)()>(&DolphinMainWindow::goBack));
connect(view, &DolphinView::goForwardRequested,
this, static_cast<void(DolphinMainWindow::*)()>(&DolphinMainWindow::goForward));
+ connect(view, &DolphinView::urlActivated,
+ this, &DolphinMainWindow::handleUrl);
const KUrlNavigator* navigator = container->urlNavigator();
connect(navigator, &KUrlNavigator::urlChanged,