Rename QMenuItem to QMenuAction, QMenuItem was already defined. Add support for separators in QMenus

This commit is contained in:
Viranch Mehta 2011-08-17 23:21:04 +05:30
parent 220cae4242
commit e677aafcad
6 changed files with 24 additions and 19 deletions

View File

@ -8,6 +8,7 @@ set(qtextracomponents_SRCS
qimageitem.cpp
qiconitem.cpp
qmenu.cpp
qmenuaction.cpp
)
INCLUDE_DIRECTORIES(

View File

@ -31,9 +31,9 @@ QMenuProxy::~QMenuProxy()
delete m_menu;
}
QDeclarativeListProperty<QMenuItem> QMenuProxy::actions()
QDeclarativeListProperty<QMenuAction> QMenuProxy::actions()
{
return QDeclarativeListProperty<QMenuItem>(this, m_actions);
return QDeclarativeListProperty<QMenuAction>(this, m_actions);
}
int QMenuProxy::actionCount() const
@ -41,7 +41,7 @@ int QMenuProxy::actionCount() const
return m_actions.count();
}
QMenuItem *QMenuProxy::action(int index) const
QMenuAction *QMenuProxy::action(int index) const
{
return m_actions.at(index);
}
@ -49,7 +49,7 @@ QMenuItem *QMenuProxy::action(int index) const
void QMenuProxy::showMenu(int x, int y)
{
m_menu->clear();
foreach(QMenuItem* item, m_actions) {
foreach(QMenuAction* item, m_actions) {
m_menu->addAction (item);
}

View File

@ -20,32 +20,30 @@
#ifndef QMENU_PROXY_H
#define QMENU_PROXY_H
#include <QObject>
#include <QMenu>
#include <QDeclarativeListProperty>
#include "qmenuitem.h"
#include "qmenuaction.h"
class QMenuProxy : public QObject
{
Q_OBJECT
Q_PROPERTY(QDeclarativeListProperty<QMenuItem> actions READ actions)
Q_PROPERTY(QDeclarativeListProperty<QMenuAction> actions READ actions)
Q_CLASSINFO("DefaultProperty", "actions")
public:
QMenuProxy(QObject *parent = 0);
~QMenuProxy();
QDeclarativeListProperty<QMenuItem> actions();
QDeclarativeListProperty<QMenuAction> actions();
int actionCount() const;
QMenuItem *action(int) const;
QMenuAction *action(int) const;
Q_INVOKABLE void showMenu(int x, int y);
Q_SIGNALS:
void actionTriggered(QString itemName);
private:
QList<QMenuItem*> m_actions;
QList<QMenuAction*> m_actions;
QMenu *m_menu;
};

View File

@ -0,0 +1,8 @@
#include "qmenuaction.h"
QMenuAction::QMenuAction(QObject *parent) : QAction(parent)
{
}
#include "qmenuaction.moc"

View File

@ -21,18 +21,16 @@
#define QMENUITEM_H
#include <QAction>
#include <QObject>
class QMenuItem : public QAction
class QMenuAction : public QAction
{
Q_OBJECT
Q_PROPERTY(bool separator READ isSeparator WRITE setSeparator)
public:
QMenuItem(QObject *parent = 0)
: QAction(parent)
{
}
QMenuAction(QObject *parent = 0);
};
#endif // QMENUITEM_H

View File

@ -27,7 +27,7 @@
#include "qimageitem.h"
#include "qiconitem.h"
#include "qmenu.h"
#include "qmenuitem.h"
#include "qmenuaction.h"
void QtExtraComponentsPlugin::registerTypes(const char *uri)
{
@ -37,7 +37,7 @@ void QtExtraComponentsPlugin::registerTypes(const char *uri)
qmlRegisterType<QImageItem>(uri, 0, 1, "QImageItem");
qmlRegisterType<QIconItem>(uri, 0, 1, "QIconItem");
qmlRegisterType<QMenuProxy>(uri, 0, 1, "QMenu");
qmlRegisterType<QMenuItem>(uri, 0, 1, "QMenuItem");
qmlRegisterType<QMenuAction>(uri, 0, 1, "QMenuAction");
}