summaryrefslogtreecommitdiff
path: root/src/controls/qtmenuitem_p.h
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@digia.com>2013-03-01 16:31:37 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-03-01 18:25:58 +0100
commited63c5433e291ee7f17bc93ee797fb37c535aae0 (patch)
treeee993c7c70d1bbadc68f26e37f4c630d67936fab /src/controls/qtmenuitem_p.h
parent0db39ab11b0a56140182b75edd34a17a8e873ae4 (diff)
downloadqtquickcontrols-ed63c5433e291ee7f17bc93ee797fb37c535aae0.tar.gz
QtMenu*: Use QtAction as private implementation
This avoids needing to duplicate some logic, in particular icon source and name changes triggering icon updates. Change-Id: Id8b34fa365db6d31eb6855f690c13073fd589a2c Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Diffstat (limited to 'src/controls/qtmenuitem_p.h')
-rw-r--r--src/controls/qtmenuitem_p.h53
1 files changed, 26 insertions, 27 deletions
diff --git a/src/controls/qtmenuitem_p.h b/src/controls/qtmenuitem_p.h
index 8644a490..b3855254 100644
--- a/src/controls/qtmenuitem_p.h
+++ b/src/controls/qtmenuitem_p.h
@@ -124,27 +124,30 @@ public:
QtMenuText(QObject *parent = 0);
~QtMenuText();
- virtual bool enabled() const { return m_enabled; }
+ bool enabled() const;
virtual void setEnabled(bool enabled);
- virtual QString text() const { return m_text; }
- virtual void setText(const QString &text);
-
- virtual QUrl iconSource() const { return m_iconSource; }
- virtual void setIconSource(const QUrl &icon);
- virtual QString iconName() const { return m_iconName; }
- virtual void setIconName(const QString &icon);
+ virtual QString text() const;
+ void setText(const QString &text);
- void setParentMenu(QtMenu *parentMenu);
+ virtual QUrl iconSource() const;
+ void setIconSource(const QUrl &icon);
+ virtual QString iconName() const;
+ void setIconName(const QString &icon);
- virtual QIcon icon() const { return QIcon(); } // TODO
QVariant iconVariant() const { return QVariant(icon()); }
+protected:
+ virtual QIcon icon() const;
+ virtual QtAction *action() const { return m_action; }
+
+protected Q_SLOTS:
+ virtual void updateText();
+ void updateEnabled();
+ void updateIcon();
+
private:
- QString m_text;
- bool m_enabled;
- QUrl m_iconSource;
- QString m_iconName;
+ QtAction *m_action;
};
class QtMenuItem: public QtMenuText
@@ -154,7 +157,7 @@ class QtMenuItem: public QtMenuText
Q_PROPERTY(bool checked READ checked WRITE setChecked NOTIFY toggled)
Q_PROPERTY(QtExclusiveGroup *exclusiveGroup READ exclusiveGroup WRITE setExclusiveGroup NOTIFY exclusiveGroupChanged)
Q_PROPERTY(QString shortcut READ shortcut WRITE setShortcut NOTIFY shortcutChanged)
- Q_PROPERTY(QtAction *action READ action WRITE setAction NOTIFY actionChanged)
+ Q_PROPERTY(QtAction *action READ boundAction WRITE setBoundAction NOTIFY actionChanged)
public Q_SLOTS:
void trigger();
@@ -172,19 +175,15 @@ public:
QtMenuItem(QObject *parent = 0);
~QtMenuItem();
- bool enabled() const;
void setEnabled(bool enabled);
QString text() const;
- void setText(const QString &text);
QUrl iconSource() const;
- void setIconSource(const QUrl &icon);
QString iconName() const;
- void setIconName(const QString &icon);
- QtAction *action();
- void setAction(QtAction *a);
+ QtAction *boundAction() { return m_boundAction; }
+ void setBoundAction(QtAction *a);
QString shortcut() const;
void setShortcut(const QString &shortcut);
@@ -198,20 +197,20 @@ public:
QtExclusiveGroup *exclusiveGroup() const;
void setExclusiveGroup(QtExclusiveGroup *);
- QIcon icon() const;
+ void setParentMenu(QtMenu *parentMenu);
protected Q_SLOTS:
- virtual void updateText();
void updateShortcut();
void updateChecked();
- void updateEnabled();
- void updateIconName();
- void updateIconSource();
void bindToAction(QtAction *action);
void unbindFromAction(QObject *action);
+protected:
+ QIcon icon() const;
+ QtAction *action() const;
+
private:
- QtAction *m_action;
+ QtAction *m_boundAction;
};
QT_END_NAMESPACE