export status
This commit is contained in:
parent
5788424702
commit
4970198392
@ -24,7 +24,8 @@
|
|||||||
#include <QGraphicsView>
|
#include <QGraphicsView>
|
||||||
|
|
||||||
QMenuProxy::QMenuProxy (QObject *parent)
|
QMenuProxy::QMenuProxy (QObject *parent)
|
||||||
: QObject (parent)
|
: QObject(parent),
|
||||||
|
m_status(DialogStatus::Closed)
|
||||||
{
|
{
|
||||||
m_menu = new QMenu(0);
|
m_menu = new QMenu(0);
|
||||||
}
|
}
|
||||||
@ -34,30 +35,37 @@ QMenuProxy::~QMenuProxy()
|
|||||||
delete m_menu;
|
delete m_menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDeclarativeListProperty<QMenuItem> QMenuProxy::actions()
|
QDeclarativeListProperty<QMenuItem> QMenuProxy::items()
|
||||||
{
|
{
|
||||||
return QDeclarativeListProperty<QMenuItem>(this, m_actions);
|
return QDeclarativeListProperty<QMenuItem>(this, m_items);
|
||||||
}
|
}
|
||||||
|
|
||||||
int QMenuProxy::actionCount() const
|
int QMenuProxy::actionCount() const
|
||||||
{
|
{
|
||||||
return m_actions.count();
|
return m_items.count();
|
||||||
}
|
}
|
||||||
|
|
||||||
QMenuItem *QMenuProxy::action(int index) const
|
QMenuItem *QMenuProxy::action(int index) const
|
||||||
{
|
{
|
||||||
return m_actions.at(index);
|
return m_items.at(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
DialogStatus::Status QMenuProxy::status() const
|
||||||
|
{
|
||||||
|
return m_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QMenuProxy::showMenu(int x, int y)
|
void QMenuProxy::showMenu(int x, int y)
|
||||||
{
|
{
|
||||||
m_menu->clear();
|
m_menu->clear();
|
||||||
foreach(QMenuItem* item, m_actions) {
|
foreach(QMenuItem* item, m_items) {
|
||||||
m_menu->addAction (item);
|
m_menu->addAction (item);
|
||||||
}
|
}
|
||||||
|
|
||||||
QPoint screenPos = QApplication::activeWindow()->mapToGlobal(QPoint(x, y));
|
QPoint screenPos = QApplication::activeWindow()->mapToGlobal(QPoint(x, y));
|
||||||
m_menu->popup(screenPos);
|
m_menu->popup(screenPos);
|
||||||
|
m_status = DialogStatus::Open;
|
||||||
|
emit statusChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QMenuProxy::open()
|
void QMenuProxy::open()
|
||||||
@ -107,6 +115,8 @@ void QMenuProxy::open()
|
|||||||
void QMenuProxy::close()
|
void QMenuProxy::close()
|
||||||
{
|
{
|
||||||
m_menu->hide();
|
m_menu->hide();
|
||||||
|
m_status = DialogStatus::Closed;
|
||||||
|
emit statusChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "qmenu.moc"
|
#include "qmenu.moc"
|
||||||
|
@ -24,29 +24,36 @@
|
|||||||
#include <QMenu>
|
#include <QMenu>
|
||||||
#include <QDeclarativeListProperty>
|
#include <QDeclarativeListProperty>
|
||||||
#include "qmenuitem.h"
|
#include "qmenuitem.h"
|
||||||
|
#include "enums.h"
|
||||||
|
|
||||||
class QMenuProxy : public QObject
|
class QMenuProxy : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
Q_PROPERTY(QDeclarativeListProperty<QMenuItem> actions READ actions)
|
Q_PROPERTY(QDeclarativeListProperty<QMenuItem> items READ items CONSTANT)
|
||||||
Q_CLASSINFO("DefaultProperty", "actions")
|
Q_CLASSINFO("DefaultProperty", "items")
|
||||||
|
Q_PROPERTY(DialogStatus::Status status READ status NOTIFY statusChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QMenuProxy(QObject *parent = 0);
|
QMenuProxy(QObject *parent = 0);
|
||||||
~QMenuProxy();
|
~QMenuProxy();
|
||||||
|
|
||||||
QDeclarativeListProperty<QMenuItem> actions();
|
QDeclarativeListProperty<QMenuItem> items();
|
||||||
int actionCount() const;
|
int actionCount() const;
|
||||||
QMenuItem *action(int) const;
|
QMenuItem *action(int) const;
|
||||||
|
DialogStatus::Status status() const;
|
||||||
|
|
||||||
void showMenu(int x, int y);
|
void showMenu(int x, int y);
|
||||||
Q_INVOKABLE void open();
|
Q_INVOKABLE void open();
|
||||||
Q_INVOKABLE void close();
|
Q_INVOKABLE void close();
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void statusChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QList<QMenuItem*> m_actions;
|
QList<QMenuItem*> m_items;
|
||||||
QMenu *m_menu;
|
QMenu *m_menu;
|
||||||
|
DialogStatus::Status m_status;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //QMENU_PROXY_H
|
#endif //QMENU_PROXY_H
|
||||||
|
Loading…
Reference in New Issue
Block a user