#include <Qt3Support/Q3ValueList>
DolphinContextMenu::DolphinContextMenu(DolphinMainWindow* parent,
- KFileItem* fileInfo,
+ const KFileItem& fileInfo,
const KUrl& baseUrl) :
m_mainWindow(parent),
m_fileInfo(fileInfo),
}
DolphinContextMenu::~DolphinContextMenu()
-{}
+{
+}
void DolphinContextMenu::open()
{
m_context |= TrashContext;
}
- if (m_fileInfo != 0) {
+ if (!m_fileInfo.isNull()) {
m_context |= ItemContext;
// TODO: handle other use cases like devices + desktop files
}
KMenu* popup = new KMenu(m_mainWindow);
- QAction* emptyTrashAction = new QAction(KIcon("emptytrash"), i18n("Empty Trash"), popup);
+ QAction* emptyTrashAction = new QAction(KIcon("emptytrash"), i18nc("@action:inmenu", "Empty Trash"), popup);
KConfig trashConfig("trashrc", KConfig::OnlyLocal);
emptyTrashAction->setEnabled(!trashConfig.group("Status").readEntry("Empty", true));
popup->addAction(emptyTrashAction);
popup->addAction(propertiesAction);
if (popup->exec(QCursor::pos()) == emptyTrashAction) {
- const QString text(i18n("Do you really want to empty the Trash? All items will get deleted."));
+ const QString text(i18nc("@info", "Do you really want to empty the Trash? All items will get deleted."));
const bool del = KMessageBox::warningContinueCancel(m_mainWindow,
- text,
- QString(),
- KGuiItem(i18n("Empty Trash"), KIcon("user-trash"))
+ text,
+ QString(),
+ KGuiItem(i18nc("@action:button", "Empty Trash"),
+ KIcon("user-trash"))
) == KMessageBox::Continue;
if (del) {
KonqOperations::emptyTrash(m_mainWindow);
KMenu* popup = new KMenu(m_mainWindow);
- QAction* restoreAction = new QAction(i18n("Restore"), m_mainWindow);
+ QAction* restoreAction = new QAction(i18nc("@action:inmenu", "Restore"), m_mainWindow);
popup->addAction(restoreAction);
QAction* deleteAction = m_mainWindow->actionCollection()->action("delete");
void DolphinContextMenu::openItemContextMenu()
{
- Q_ASSERT(m_fileInfo != 0);
+ Q_ASSERT(!m_fileInfo.isNull());
KMenu* popup = new KMenu(m_mainWindow);
insertDefaultItemActions(popup);
// insert 'Bookmark This Folder' entry if exactly one item is selected
QAction* bookmarkAction = 0;
- if (m_fileInfo->isDir() && (m_selectedUrls.count() == 1)) {
- bookmarkAction = popup->addAction(KIcon("bookmark-folder"), i18n("Bookmark Folder..."));
+ if (m_fileInfo.isDir() && (m_selectedUrls.count() == 1)) {
+ bookmarkAction = popup->addAction(KIcon("bookmark-folder"),
+ i18nc("@action:inmenu", "Bookmark Folder..."));
}
// Insert 'Open With...' sub menu
QAction* activatedAction = popup->exec(QCursor::pos());
if ((bookmarkAction != 0) && (activatedAction == bookmarkAction)) {
- const KUrl selectedUrl(m_fileInfo->url());
+ const KUrl selectedUrl(m_fileInfo.url());
if (selectedUrl.isValid()) {
DolphinSettings::instance().placesModel()->addPlace(selectedUrl.fileName(),
- selectedUrl);
+ selectedUrl);
}
} else if (serviceActions.contains(activatedAction)) {
// one of the 'Actions' items has been selected
void DolphinContextMenu::openViewportContextMenu()
{
- Q_ASSERT(m_fileInfo == 0);
+ Q_ASSERT(!m_fileInfo.isNull());
KMenu* popup = new KMenu(m_mainWindow);
// setup 'Create New' menu
popup->addAction(pasteAction);
// setup 'View Mode' menu
- KMenu* viewModeMenu = new KMenu(i18n("View Mode"));
+ KMenu* viewModeMenu = new KMenu(i18nc("@title:menu", "View Mode"));
QAction* iconsMode = m_mainWindow->actionCollection()->action("icons");
viewModeMenu->addAction(iconsMode);
viewModeMenu->addAction(previewsMode);
popup->addMenu(viewModeMenu);
+
popup->addSeparator();
- QAction* bookmarkAction = popup->addAction(KIcon("bookmark-folder"), i18n("Bookmark This Folder..."));
+ QAction* bookmarkAction = popup->addAction(KIcon("bookmark-folder"),
+ i18nc("@action:inmenu", "Bookmark This Folder..."));
popup->addSeparator();
- QAction* propertiesAction = popup->addAction(i18n("Properties"));
+ QAction* propertiesAction = popup->addAction(i18nc("@action:inmenu", "Properties"));
- QAction* activatedAction = popup->exec(QCursor::pos());
- if (activatedAction == propertiesAction) {
+ QAction* action = popup->exec(QCursor::pos());
+ if (action == propertiesAction) {
const KUrl& url = m_mainWindow->activeViewContainer()->url();
KPropertiesDialog dialog(url);
dialog.exec();
- } else if (activatedAction == bookmarkAction) {
+ } else if (action == bookmarkAction) {
const KUrl& url = m_mainWindow->activeViewContainer()->url();
if (url.isValid()) {
DolphinSettings::instance().placesModel()->addPlace(url.fileName(), url);
// attached which allows to select a custom application. If no applications are registered
// no sub menu is created at all, only "Open With..." will be offered.
bool insertOpenWithItems = true;
- const QString contextMimeType(m_fileInfo->mimetype());
+ const QString contextMimeType(m_fileInfo.mimetype());
- QListIterator<KFileItem*> mimeIt(m_selectedItems);
+ QListIterator<KFileItem> mimeIt(m_selectedItems);
while (insertOpenWithItems && mimeIt.hasNext()) {
- KFileItem* item = mimeIt.next();
- insertOpenWithItems = (contextMimeType == item->mimetype());
+ KFileItem item = mimeIt.next();
+ insertOpenWithItems = (contextMimeType == item.mimetype());
}
QList<QAction*> openWithActions;
if (insertOpenWithItems) {
// fill the 'Open with' sub menu with application types
- const KMimeType::Ptr mimePtr = KMimeType::findByUrl(m_fileInfo->url());
+ const KMimeType::Ptr mimePtr = KMimeType::findByUrl(m_fileInfo.url());
KService::List offers = KMimeTypeTrader::self()->query(mimePtr->name(),
"Application",
"Type == 'Application'");
if (offers.count() > 0) {
KService::List::Iterator it;
- KMenu* openWithMenu = new KMenu(i18n("Open With"));
+ KMenu* openWithMenu = new KMenu(i18nc("@title:menu", "Open With"));
for (it = offers.begin(); it != offers.end(); ++it) {
// The offer list from the KTrader returns duplicate
// application entries. Although this seems to be a configuration
}
openWithMenu->addSeparator();
- QAction* action = openWithMenu->addAction(i18n("&Other..."));
+ QAction* action = openWithMenu->addAction(i18nc("@action:inmenu Open With", "&Other..."));
openWithActions << action;
popup->addMenu(openWithMenu);
// No applications are registered, hence just offer
// a "Open With..." item instead of a sub menu containing
// only one entry.
- QAction* action = popup->addAction(i18n("Open With..."));
+ QAction* action = popup->addAction(i18nc("@title:menu", "Open With..."));
openWithActions << action;
}
} else {
// At least one of the selected items has a different MIME type. In this case
// just show a disabled "Open With..." entry.
- QAction* action = popup->addAction(i18n("Open With..."));
+ QAction* action = popup->addAction(i18nc("@title:menu", "Open With..."));
action->setEnabled(false);
}
}
QList<QAction*> DolphinContextMenu::insertActionItems(KMenu* popup,
- QVector<KDesktopFileActions::Service>& actionsVector)
+ QVector<KDesktopFileActions::Service>& actionsVector)
{
// Parts of the following code have been taken
// from the class KonqOperations located in
// libqonq/konq_operations.h of Konqueror.
// (Copyright (C) 2000 David Faure <faure@kde.org>)
- KMenu* actionsMenu = new KMenu(i18n("Actions"));
+ KMenu* actionsMenu = new KMenu(i18nc("@title:menu", "Actions"));
QList<QAction*> serviceActions;
if ((*it) == "all/allfiles") {
// The service type is valid for all files, but not for directories.
// Check whether the selected items only consist of files...
- QListIterator<KFileItem*> mimeIt(m_selectedItems);
+ QListIterator<KFileItem> mimeIt(m_selectedItems);
insert = true;
while (insert && mimeIt.hasNext()) {
- KFileItem* item = mimeIt.next();
- insert = !item->isDir();
+ KFileItem item = mimeIt.next();
+ insert = !item.isDir();
}
}
// Check whether the MIME types of all selected files match
// to the mimetype of the service action. As soon as one MIME
// type does not match, no service menu is shown at all.
- QListIterator<KFileItem*> mimeIt(m_selectedItems);
+ QListIterator<KFileItem> mimeIt(m_selectedItems);
insert = true;
while (insert && mimeIt.hasNext()) {
- KFileItem* item = mimeIt.next();
- const QString mimeType(item->mimetype());
+ KFileItem item = mimeIt.next();
+ const QString mimeType(item.mimetype());
const QString mimeGroup(mimeType.left(mimeType.indexOf('/')));
insert = (*it == mimeType) ||