#include "dolphinsettingsdialog.h"
#include "dolphinstatusbar.h"
#include "dolphinviewcontainer.h"
-#include "fileitemcapabilities.h"
#include "infosidebarpage.h"
#include "metadatawidget.h"
#include "mainwindowadaptor.h"
#include <kmenu.h>
#include <kmenubar.h>
#include <kmessagebox.h>
-#include <kurlnavigator.h>
+#include <konq_fileitemcapabilities.h>
#include <konqmimedata.h>
-#include <kpropertiesdialog.h>
#include <kprotocolinfo.h>
-#include <ktoggleaction.h>
#include <krun.h>
#include <kshell.h>
#include <kstandarddirs.h>
#include <kstatusbar.h>
#include <kstandardaction.h>
#include <ktabbar.h>
+#include <ktoggleaction.h>
+#include <kurlnavigator.h>
#include <kurl.h>
#include <kurlcombobox.h>
QAction* compareFilesAction = actionCollection()->action("compare_files");
if (selectedUrlsCount == 2) {
- const bool kompareInstalled = !KGlobal::dirs()->findExe("kompare").isEmpty();
- compareFilesAction->setEnabled(selectedUrlsCount == 2 && kompareInstalled);
+ compareFilesAction->setEnabled(isKompareInstalled());
} else {
compareFilesAction->setEnabled(false);
}
m_newMenu->setPopupFiles(activeViewContainer()->url());
}
-void DolphinMainWindow::properties()
-{
- const KFileItemList list = m_activeViewContainer->view()->selectedItems();
-
- KPropertiesDialog *dialog = new KPropertiesDialog(list, this);
- dialog->setAttribute(Qt::WA_DeleteOnClose);
- dialog->show();
- dialog->raise();
- dialog->activateWindow();
-}
-
void DolphinMainWindow::quit()
{
close();
m_activeViewContainer->urlNavigator()->goHome();
}
-void DolphinMainWindow::findFile()
-{
- KRun::run("kfind", m_activeViewContainer->url(), this);
-}
-
void DolphinMainWindow::compareFiles()
{
// The method is only invoked if exactly 2 files have
KAction* newTab = actionCollection()->addAction("new_tab");
newTab->setIcon(KIcon("tab-new"));
newTab->setText(i18nc("@action:inmenu File", "New Tab"));
- newTab->setShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_N);
+ newTab->setShortcut(KShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_N, Qt::CTRL | Qt::Key_T));
connect(newTab, SIGNAL(triggered()), this, SLOT(openNewTab()));
QAction* closeTab = new QAction(KIcon("tab-close"), i18nc("@action:inmenu File", "Close Tab"), this);
connect(closeTab, SIGNAL(triggered()), this, SLOT(closeTab()));
actionCollection()->addAction("close_tab", closeTab);
- KAction* properties = actionCollection()->addAction("properties");
- properties->setText(i18nc("@action:inmenu File", "Properties"));
- properties->setShortcut(Qt::ALT | Qt::Key_Return);
- connect(properties, SIGNAL(triggered()), this, SLOT(properties()));
-
KStandardAction::quit(this, SLOT(quit()), actionCollection());
// setup 'Edit' menu
KStandardAction::home(this, SLOT(goHome()), actionCollection());
// setup 'Tools' menu
- QAction* findFile = actionCollection()->addAction("find_file");
- findFile->setText(i18nc("@action:inmenu Tools", "Find File..."));
- findFile->setShortcut(Qt::CTRL | Qt::Key_F);
- findFile->setIcon(KIcon("edit-find"));
- connect(findFile, SIGNAL(triggered()), this, SLOT(findFile()));
-
KToggleAction* showFilterBar = actionCollection()->add<KToggleAction>("show_filter_bar");
showFilterBar->setText(i18nc("@action:inmenu Tools", "Show Filter Bar"));
showFilterBar->setShortcut(Qt::CTRL | Qt::Key_I);
} else {
stateChanged("has_selection");
- FileItemCapabilities capabilities(list);
- actionCollection()->action("rename")->setEnabled(capabilities.supportsMoving());
+ KActionCollection* col = actionCollection();
+ QAction* renameAction = col->action("rename");
+ QAction* moveToTrashAction = col->action("move_to_trash");
+ QAction* deleteAction = col->action("delete");
+ QAction* cutAction = col->action(KStandardAction::name(KStandardAction::Cut));
+ QAction* deleteWithTrashShortcut = col->action("delete_shortcut"); // see DolphinViewActionHandler
+
+ KonqFileItemCapabilities capabilities(list);
const bool enableMoveToTrash = capabilities.isLocal() && capabilities.supportsMoving();
- actionCollection()->action("move_to_trash")->setEnabled(enableMoveToTrash);
- actionCollection()->action("delete")->setEnabled(capabilities.supportsDeleting());
+
+ renameAction->setEnabled(capabilities.supportsMoving());
+ moveToTrashAction->setEnabled(enableMoveToTrash);
+ deleteAction->setEnabled(capabilities.supportsDeleting());
+ deleteWithTrashShortcut->setEnabled(capabilities.supportsDeleting() && !enableMoveToTrash);
+ cutAction->setEnabled(capabilities.supportsMoving());
}
updatePasteAction();
}
return name;
}
+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 = !KGlobal::dirs()->findExe("kompare").isEmpty();
+ initialized = true;
+ }
+ return installed;
+}
+
DolphinMainWindow::UndoUiInterface::UndoUiInterface() :
KIO::FileUndoManager::UiInterface()
{