konq_popupmenu.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __konqpopupmenu_h
00022 #define __konqpopupmenu_h
00023
00024 #include <sys/types.h>
00025
00026 #include <qpopupmenu.h>
00027 #include <qmap.h>
00028 #include <kaction.h>
00029
00030 #include <qstringlist.h>
00031
00032 #include <kfileitem.h>
00033 #include <kmimetype.h>
00034
00035 #include <kparts/browserextension.h>
00036
00037 #include "konq_xmlguiclient.h"
00038
00039 typedef QValueList<KDEDesktopMimeType::Service> ServiceList;
00040
00041 class KNewMenu;
00042 class KService;
00043 class KonqPopupMenuPlugin;
00044 class KBookmarkManager;
00051 class KonqPopupMenu : public QPopupMenu, public KonqXMLGUIClient
00052 {
00053 Q_OBJECT
00054 public:
00055
00060 typedef uint KonqPopupFlags;
00061 enum { NoFlags = 0,
00062 ShowProperties = 1,
00063 IsLink = 2,
00064 ShowNewWindow = 4 };
00065
00066
00072 KonqPopupMenu( KBookmarkManager* manager,
00073 const KFileItemList &items,
00074 KURL viewURL,
00075 KActionCollection & actions,
00076 KNewMenu * newMenu,
00077 bool showPropertiesAndFileType = true ) KDE_DEPRECATED;
00078
00083 KonqPopupMenu( KBookmarkManager* manager,
00084 const KFileItemList &items,
00085 KURL viewURL,
00086 KActionCollection & actions,
00087 KNewMenu * newMenu,
00088 QWidget * parentWidget,
00089 bool showPropertiesAndFileType = true ) KDE_DEPRECATED;
00090
00109 KonqPopupMenu( KBookmarkManager* manager,
00110 const KFileItemList &items,
00111 const KURL& viewURL,
00112 KActionCollection & actions,
00113 KNewMenu * newMenu,
00114 QWidget * parentWidget,
00115 KonqPopupFlags kpf,
00116 KParts::BrowserExtension::PopupFlags f );
00117
00121 ~KonqPopupMenu();
00122
00127 void setURLTitle( const QString& urlTitle );
00128
00129 class ProtocolInfo {
00130 public:
00131 ProtocolInfo();
00132 bool supportsReading() const;
00133 bool supportsWriting() const;
00134 bool supportsDeleting() const;
00135 bool supportsMoving() const;
00136 bool trashIncluded() const;
00137 private:
00138 friend class KonqPopupMenu;
00139 bool m_Reading:1;
00140 bool m_Writing:1;
00141 bool m_Deleting:1;
00142 bool m_Moving:1;
00143 bool m_TrashIncluded:1;
00144 };
00148 virtual KAction *action( const QDomElement &element ) const;
00149
00150
00151 virtual KActionCollection *actionCollection() const;
00152 QString mimeType( ) const;
00153 KURL url( ) const;
00154 KFileItemList fileItemList() const;
00155 KURL::List popupURLList( ) const;
00156 ProtocolInfo protocolInfo() const;
00157
00158 public slots:
00159 void slotPopupNewDir();
00160 void slotPopupNewView();
00161 void slotPopupEmptyTrashBin();
00162 void slotPopupOpenWith();
00163 void slotPopupAddToBookmark();
00164 void slotRunService();
00165 void slotPopupMimeType();
00166 void slotPopupProperties();
00167 void slotOpenShareFileDialog();
00168 protected:
00169 KActionCollection &m_actions;
00170 KActionCollection m_ownActions;
00171
00172 private:
00173 void init (QWidget * parentWidget, KonqPopupFlags kpf, KParts::BrowserExtension::PopupFlags itemFlags);
00174 void setup(KonqPopupFlags kpf);
00175 void addPlugins( );
00176 int insertServicesSubmenus(const QMap<QString, ServiceList>& list, QDomElement& menu, bool isBuiltin);
00177 int insertServices(const ServiceList& list, QDomElement& menu, bool isBuiltin);
00178 bool KIOSKAuthorizedAction(KConfig& cfg);
00179
00180 class KonqPopupMenuPrivate;
00181 KonqPopupMenuPrivate *d;
00182 KNewMenu *m_pMenuNew;
00183 KURL m_sViewURL;
00184 QString m_sMimeType;
00185 KFileItemList m_lstItems;
00186 KURL::List m_lstPopupURLs;
00187 QMap<int,KService::Ptr> m_mapPopup;
00188 QMap<int,KDEDesktopMimeType::Service> m_mapPopupServices;
00189 bool m_bHandleEditOperations;
00190 KXMLGUIFactory *m_factory;
00191 KXMLGUIBuilder *m_builder;
00192 QString attrName;
00193 ProtocolInfo m_info;
00194 QPtrList<KonqPopupMenuPlugin> m_pluginList;
00195 KBookmarkManager* m_pManager;
00196 };
00197
00198 class KonqPopupMenuPlugin : public QObject, public KonqXMLGUIClient {
00199 Q_OBJECT
00200 public:
00208 KonqPopupMenuPlugin( KonqPopupMenu *_popup, const char *name );
00209 virtual ~KonqPopupMenuPlugin ( );
00210 };
00211
00212 #endif
00213
This file is part of the documentation for libkonq Library Version 3.2.2.