kde4_add_plugin(dolphinpart ${dolphinpart_SRCS})
-target_link_libraries(dolphinpart dolphinprivate)
+target_link_libraries(dolphinpart dolphinprivate konq)
install(TARGETS dolphinpart DESTINATION ${PLUGIN_INSTALL_DIR} )
dolphinfileplacesview.cpp
dolphinsettingsdialog.cpp
draganddrophelper.cpp
- fileitemcapabilities.cpp
filterbar.cpp
generalsettingspage.cpp
generalviewsettingspage.cpp
#include "dolphinview.h"
#include "dolphinviewcontainer.h"
#include "dolphin_generalsettings.h"
-#include "fileitemcapabilities.h"
#include <kactioncollection.h>
#include <kfileplacesmodel.h>
#include <kmimetypetrader.h>
#include <knewmenu.h>
#include <konqmimedata.h>
+#include <konq_fileitemcapabilities.h>
#include <konq_operations.h>
#include <konq_menuactions.h>
#include <konq_popupmenuinformation.h>
return action;
}
-FileItemCapabilities& DolphinContextMenu::capabilities()
+KonqFileItemCapabilities& DolphinContextMenu::capabilities()
{
if (m_capabilities == 0) {
- m_capabilities = new FileItemCapabilities(m_selectedItems);
+ m_capabilities = new KonqFileItemCapabilities(m_selectedItems);
}
return *m_capabilities;
}
class KFileItem;
class QAction;
class DolphinMainWindow;
-class FileItemCapabilities;
+class KonqFileItemCapabilities;
/**
* @brief Represents the context menu which appears when doing a right
QAction* createPasteAction();
private:
- FileItemCapabilities& capabilities();
+ KonqFileItemCapabilities& capabilities();
private:
struct Entry
};
DolphinMainWindow* m_mainWindow;
- FileItemCapabilities* m_capabilities;
+ KonqFileItemCapabilities* m_capabilities;
KFileItem m_fileInfo;
KUrl m_baseUrl;
KFileItemList m_selectedItems;
#include "dolphinsettingsdialog.h"
#include "dolphinstatusbar.h"
#include "dolphinviewcontainer.h"
-#include "fileitemcapabilities.h"
#include "infosidebarpage.h"
#include "metadatawidget.h"
#include "mainwindowadaptor.h"
#include <kmenubar.h>
#include <kmessagebox.h>
#include <kurlnavigator.h>
+#include <konq_fileitemcapabilities.h>
#include <konqmimedata.h>
#include <kpropertiesdialog.h>
#include <kprotocolinfo.h>
QAction* deleteAction = col->action("delete");
QAction* cutAction = col->action(KStandardAction::name(KStandardAction::Cut));
- FileItemCapabilities capabilities(list);
+ KonqFileItemCapabilities capabilities(list);
const bool enableMoveToTrash = capabilities.isLocal() && capabilities.supportsMoving();
renameAction->setEnabled(capabilities.supportsMoving());
#include "dolphinview.h"
#include "dolphinmodel.h"
+#include <konq_fileitemcapabilities.h>
#include <konq_operations.h>
#include <kaboutdata.h>
void DolphinPart::slotSelectionChanged(const KFileItemList& selection)
{
const bool hasSelection = !selection.isEmpty();
+
+ QAction* renameAction = actionCollection()->action("rename");
+ QAction* moveToTrashAction = actionCollection()->action("move_to_trash");
+ QAction* deleteAction = actionCollection()->action("delete");
+ QAction* editMimeTypeAction = actionCollection()->action("editMimeType");
+ QAction* propertiesAction = actionCollection()->action("properties");
+
if (!hasSelection) {
stateChanged("has_no_selection");
+
+ emit m_extension->enableAction("cut", false);
+ emit m_extension->enableAction("copy", false);
+ renameAction->setEnabled(false);
+ moveToTrashAction->setEnabled(false);
+ deleteAction->setEnabled(false);
+ editMimeTypeAction->setEnabled(false);
+ propertiesAction->setEnabled(false);
} else {
stateChanged("has_selection");
- }
- QStringList actions;
- actions << "rename" << "move_to_trash" << "delete" << "editMimeType" << "properties";
- foreach(const QString& actionName, actions) {
- QAction* action = actionCollection()->action(actionName);
- Q_ASSERT(action);
- if (action) {
- action->setEnabled(hasSelection);
- }
+ KonqFileItemCapabilities capabilities(selection);
+ const bool enableMoveToTrash = capabilities.isLocal() && capabilities.supportsMoving();
+
+ renameAction->setEnabled(capabilities.supportsMoving());
+ moveToTrashAction->setEnabled(enableMoveToTrash);
+ deleteAction->setEnabled(capabilities.supportsDeleting());
+ editMimeTypeAction->setEnabled(true);
+ propertiesAction->setEnabled(true);
+ emit m_extension->enableAction("cut", capabilities.supportsMoving());
+ emit m_extension->enableAction("copy", true);
}
-
- emit m_extension->enableAction("cut", hasSelection);
- emit m_extension->enableAction("copy", hasSelection);
}
void DolphinPart::updatePasteAction()
+++ /dev/null
-/***************************************************************************
- * Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at> *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "fileitemcapabilities.h"
-
-#include <kfileitem.h>
-#include <kprotocolmanager.h>
-
-#include <QFileInfo>
-
-FileItemCapabilities::FileItemCapabilities(const KFileItemList& items) :
- m_supportsReading(true),
- m_supportsDeleting(true),
- m_supportsWriting(true),
- m_supportsMoving(true),
- m_isLocal(true)
-{
- QFileInfo parentDirInfo;
- foreach (const KFileItem &item, items) {
- const KUrl url = item.url();
- m_isLocal = m_isLocal && url.isLocalFile();
- m_supportsReading = m_supportsReading && KProtocolManager::supportsReading(url);
- m_supportsDeleting = m_supportsDeleting && KProtocolManager::supportsDeleting(url);
- m_supportsWriting = m_supportsWriting && KProtocolManager::supportsWriting(url);
- m_supportsMoving = m_supportsMoving && KProtocolManager::supportsMoving(url);
-
- // The following code has been taken from kdebase/apps/lib/konq/konq_popupmenu.cpp:
- // For local files we can do better: check if we have write permission in parent directory
- if (m_isLocal && (m_supportsDeleting || m_supportsMoving)) {
- const QString directory = url.directory();
- if (parentDirInfo.filePath() != directory) {
- parentDirInfo.setFile(directory);
- }
- if (!parentDirInfo.isWritable()) {
- m_supportsDeleting = false;
- m_supportsMoving = false;
- }
- }
- }
-}
-
-FileItemCapabilities::~FileItemCapabilities()
-{
-}
+++ /dev/null
-/***************************************************************************
- * Copyright (C) 2008 by Peter Penz <peter.penz@gmx.at> *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
- ***************************************************************************/
-
-#ifndef FILEITEMCAPABILITIES_H
-#define FILEITEMCAPABILITIES_H
-
-class KFileItemList;
-
-/**
- * @brief Provides information about the access capabilities of file items.
- *
- * As soon as one file item does not support a specific capability, it is
- * marked as unsupported for all items.
- */
-class FileItemCapabilities
-{
-public:
- FileItemCapabilities(const KFileItemList& items);
- virtual ~FileItemCapabilities();
- bool supportsReading() const;
- bool supportsDeleting() const;
- bool supportsWriting() const;
- bool supportsMoving() const;
- bool isLocal() const;
-
-private:
- bool m_supportsReading : 1;
- bool m_supportsDeleting : 1;
- bool m_supportsWriting : 1;
- bool m_supportsMoving : 1;
- bool m_isLocal : 1;
-};
-
-inline bool FileItemCapabilities::supportsReading() const
-{
- return m_supportsReading;
-}
-
-inline bool FileItemCapabilities::supportsDeleting() const
-{
- return m_supportsDeleting;
-}
-
-inline bool FileItemCapabilities::supportsWriting() const
-{
- return m_supportsWriting;
-}
-
-inline bool FileItemCapabilities::supportsMoving() const
-{
- return m_supportsMoving;
-}
-
-inline bool FileItemCapabilities::isLocal() const
-{
- return m_isLocal;
-}
-
-#endif