~ci-train-bot/qtubuntu/qtubuntu-ubuntu-zesty-2555

« back to all changes in this revision

Viewing changes to src/ubuntuappmenu/gmenumodelexporter.h

  • Committer: Bileto Bot
  • Author(s): Albert Astals Cid
  • Date: 2017-03-20 17:30:17 UTC
  • mfrom: (371.6.12 aboutToShow)
  • Revision ID: ci-train-bot@canonical.com-20170320173017-gg2416diehq0hld1
Set qtubuntu-tag and handle aboutToShow calls (LP: #1664578)

Approved by: Charles Kerr, Unity8 CI Bot

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
#include <gio/gio.h>
23
23
 
24
24
#include <QTimer>
 
25
#include <QMap>
25
26
#include <QSet>
26
27
#include <QMetaObject>
27
28
 
 
29
class QtUbuntuExtraActionHandler;
 
30
 
28
31
// Base class for a gmenumodel exporter
29
32
class UbuntuGMenuModelExporter : public QObject
30
33
{
37
40
 
38
41
    QString menuPath() const { return m_menuPath;}
39
42
 
 
43
    void aboutToShow(quint64 tag);
 
44
 
40
45
protected:
41
46
    UbuntuGMenuModelExporter(QObject *parent);
42
47
 
43
48
    GMenuItem *createSubmenu(QPlatformMenu* platformMenu, UbuntuPlatformMenuItem* forItem);
44
 
    GMenuItem *createMenuItem(QPlatformMenuItem* platformMenuItem);
 
49
    GMenuItem *createMenuItem(QPlatformMenuItem* platformMenuItem, GMenu *parentMenu);
45
50
    GMenuItem *createSection(QList<QPlatformMenuItem*>::const_iterator iter, QList<QPlatformMenuItem*>::const_iterator end);
46
 
    void addAction(const QByteArray& name, UbuntuPlatformMenuItem* gplatformItem);
 
51
    void addAction(const QByteArray& name, UbuntuPlatformMenuItem* gplatformItem, GMenu *parentMenu);
47
52
 
48
53
    void addSubmenuItems(UbuntuPlatformMenu* gplatformMenu, GMenu* menu);
49
54
    void processItemForGMenu(QPlatformMenuItem* item, GMenu* gmenu);
50
55
 
51
56
    void clear();
52
57
 
 
58
    void timerEvent(QTimerEvent *e) override;
 
59
 
53
60
protected:
54
61
    GDBusConnection *m_connection;
55
62
    GMenu *m_gmainMenu;
56
63
    GSimpleActionGroup *m_gactionGroup;
57
 
    QSet<QByteArray> m_actions;
58
64
    guint m_exportedModel;
59
65
    guint m_exportedActions;
 
66
    QtUbuntuExtraActionHandler *m_qtubuntuExtraHandler;
60
67
    QTimer m_structureTimer;
61
68
    QString m_menuPath;
62
69
 
63
 
    QVector<QMetaObject::Connection> m_propertyConnections;
 
70
    // UbuntuPlatformMenu::tag -> UbuntuPlatformMenu
 
71
    QMap<quint64, UbuntuPlatformMenu*> m_submenusWithTag;
 
72
 
 
73
    // UbuntuPlatformMenu -> reload TimerId (startTimer)
 
74
    QHash<UbuntuPlatformMenu*, int> m_reloadMenuTimers;
 
75
 
 
76
    QHash<UbuntuPlatformMenu*, GMenu*> m_gmenusForMenus;
 
77
 
 
78
    QHash<GMenu*, QSet<QByteArray>> m_actions;
 
79
    QHash<GMenu*, QVector<QMetaObject::Connection>> m_propertyConnections;
 
80
 
64
81
};
65
82
 
66
83
// Class which exports a qt platform menu bar.