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 #include <libkonq_export.h>
00039
00040 typedef QValueList<KDEDesktopMimeType::Service> ServiceList;
00041
00042 class KNewMenu;
00043 class KService;
00044 class KonqPopupMenuPlugin;
00045 class KBookmarkManager;
00052 class LIBKONQ_EXPORT KonqPopupMenu : public QPopupMenu, public KonqXMLGUIClient
00053 {
00054 Q_OBJECT
00055 public:
00056
00061 typedef uint KonqPopupFlags;
00062 enum { NoFlags = 0,
00063 ShowProperties = 1,
00064 IsLink = 2,
00065 ShowNewWindow = 4 };
00066
00067
00073 KonqPopupMenu( KBookmarkManager* manager,
00074 const KFileItemList &items,
00075 KURL viewURL,
00076 KActionCollection & actions,
00077 KNewMenu * newMenu,
00078 bool showPropertiesAndFileType = true ) KDE_DEPRECATED;
00079
00084 KonqPopupMenu( KBookmarkManager* manager,
00085 const KFileItemList &items,
00086 KURL viewURL,
00087 KActionCollection & actions,
00088 KNewMenu * newMenu,
00089 QWidget * parentWidget,
00090 bool showPropertiesAndFileType = true ) KDE_DEPRECATED;
00091
00110 KonqPopupMenu( KBookmarkManager* manager,
00111 const KFileItemList &items,
00112 const KURL& viewURL,
00113 KActionCollection & actions,
00114 KNewMenu * newMenu,
00115 QWidget * parentWidget,
00116 KonqPopupFlags kpf,
00117 KParts::BrowserExtension::PopupFlags f );
00118
00122 ~KonqPopupMenu();
00123
00128 void setURLTitle( const QString& urlTitle );
00129
00130 class LIBKONQ_EXPORT ProtocolInfo {
00131 public:
00132 ProtocolInfo();
00133 bool supportsReading() const;
00134 bool supportsWriting() const;
00135 bool supportsDeleting() const;
00136 bool supportsMoving() const;
00137 bool trashIncluded() const;
00138 private:
00139 friend class KonqPopupMenu;
00140 bool m_Reading:1;
00141 bool m_Writing:1;
00142 bool m_Deleting:1;
00143 bool m_Moving:1;
00144 bool m_TrashIncluded:1;
00145 };
00149 virtual KAction *action( const QDomElement &element ) const;
00150
00151
00152 virtual KActionCollection *actionCollection() const;
00153 QString mimeType( ) const;
00154 KURL url( ) const;
00155 KFileItemList fileItemList() const;
00156 KURL::List popupURLList( ) const;
00157 ProtocolInfo protocolInfo() const;
00158
00159 public slots:
00160 void slotPopupNewDir();
00161 void slotPopupNewView();
00162 void slotPopupEmptyTrashBin();
00163 void slotPopupOpenWith();
00164 void slotPopupAddToBookmark();
00165 void slotRunService();
00166 void slotPopupMimeType();
00167 void slotPopupProperties();
00168 void slotOpenShareFileDialog();
00169 protected:
00170 KActionCollection &m_actions;
00171 KActionCollection m_ownActions;
00172
00173 private:
00174 void init (QWidget * parentWidget, KonqPopupFlags kpf, KParts::BrowserExtension::PopupFlags itemFlags);
00175 void setup(KonqPopupFlags kpf);
00176 void addPlugins( );
00177 int insertServicesSubmenus(const QMap<QString, ServiceList>& list, QDomElement& menu, bool isBuiltin);
00178 int insertServices(const ServiceList& list, QDomElement& menu, bool isBuiltin);
00179 bool KIOSKAuthorizedAction(KConfig& cfg);
00180
00181 class KonqPopupMenuPrivate;
00182 KonqPopupMenuPrivate *d;
00183 KNewMenu *m_pMenuNew;
00184 KURL m_sViewURL;
00185 QString m_sMimeType;
00186 KFileItemList m_lstItems;
00187 KURL::List m_lstPopupURLs;
00188 QMap<int,KService::Ptr> m_mapPopup;
00189 QMap<int,KDEDesktopMimeType::Service> m_mapPopupServices;
00190 bool m_bHandleEditOperations;
00191 KXMLGUIFactory *m_factory;
00192 KXMLGUIBuilder *m_builder;
00193 QString attrName;
00194 ProtocolInfo m_info;
00195 QPtrList<KonqPopupMenuPlugin> m_pluginList;
00196
00197 KBookmarkManager* m_pManager;
00198 };
00199
00200 class LIBKONQ_EXPORT KonqPopupMenuPlugin : public QObject, public KonqXMLGUIClient {
00201 Q_OBJECT
00202 public:
00210 KonqPopupMenuPlugin( KonqPopupMenu *_popup, const char *name );
00211 virtual ~KonqPopupMenuPlugin ( );
00212 };
00213
00214 #endif
00215
This file is part of the documentation for libkonq Library Version 3.3.90.