00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef DBUSMENUIMPORTER_H
00022 #define DBUSMENUIMPORTER_H
00023
00024
00025 #include <QtCore/QObject>
00026
00027
00028 #include <dbusmenu_export.h>
00029
00030 class QAction;
00031 class QDBusAbstractInterface;
00032 class QDBusPendingCallWatcher;
00033 class QDBusVariant;
00034 class QIcon;
00035 class QMenu;
00036
00037 class DBusMenuImporterPrivate;
00042 class DBUSMENU_EXPORT DBusMenuImporter : public QObject
00043 {
00044 Q_OBJECT
00045 public:
00049 DBusMenuImporter(const QString &service, const QString &path, QObject *parent = 0);
00050
00051 ~DBusMenuImporter();
00052
00056 QMenu *menu() const;
00057
00058 public Q_SLOTS:
00072 void updateMenu();
00073
00074 Q_SIGNALS:
00079 void menuUpdated();
00080
00088 void menuReadyToBeShown();
00089
00093 void actionActivationRequested(QAction *);
00094
00095 protected:
00100 virtual QMenu *createMenu(QWidget *parent);
00101
00106 virtual QIcon iconForName(const QString &);
00107
00108 private Q_SLOTS:
00109 void sendClickedEvent(int);
00110 void slotMenuAboutToShow();
00111 void slotMenuAboutToHide();
00112 void slotAboutToShowDBusCallFinished(QDBusPendingCallWatcher *);
00113 void slotItemActivationRequested(int id, uint timestamp);
00114 void processPendingLayoutUpdates();
00115 void slotLayoutUpdated(uint revision, int parentId);
00116 void slotGetLayoutFinished(QDBusPendingCallWatcher *);
00117
00118 private:
00119 Q_DISABLE_COPY(DBusMenuImporter)
00120 DBusMenuImporterPrivate *const d;
00121 friend class DBusMenuImporterPrivate;
00122
00123
00124 Q_PRIVATE_SLOT(d, void slotItemsPropertiesUpdated(const DBusMenuItemList &updatedList, const DBusMenuItemKeysList &removedList));
00125 };
00126
00127 #endif