QmlDesigner.propertyEditor add notifier for QWidget::visible

This commit is contained in:
Thomas Hartmann
2010-02-26 14:47:15 +01:00
parent 868dac8088
commit 6c2bb2e7d7

View File

@@ -138,6 +138,8 @@ class QWidgetDeclarativeUI : public QObject
Q_PROPERTY(bool mouseOver READ mouseOver NOTIFY mouseOverChanged) Q_PROPERTY(bool mouseOver READ mouseOver NOTIFY mouseOverChanged)
Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged)
Q_CLASSINFO("DefaultProperty", "children") Q_CLASSINFO("DefaultProperty", "children")
signals: signals:
@@ -148,6 +150,7 @@ signals:
void focusChanged(); void focusChanged();
void mouseOverChanged(); void mouseOverChanged();
void opacityChanged(); void opacityChanged();
void visibleChanged();
public: public:
QWidgetDeclarativeUI(QObject *other) : QObject(other), _layout(0), _graphicsOpacityEffect(0) { QWidgetDeclarativeUI(QObject *other) : QObject(other), _layout(0), _graphicsOpacityEffect(0) {
@@ -192,6 +195,11 @@ public:
emit mouseOverChanged(); emit mouseOverChanged();
} }
void emitVisibleChanged()
{
emit visibleChanged();
}
QmlListProperty<QObject> children() { QmlListProperty<QObject> children() {
return QmlListProperty<QObject>(this, 0, children_append, children_count, children_at, children_clear); return QmlListProperty<QObject>(this, 0, children_append, children_count, children_at, children_clear);
} }
@@ -250,6 +258,14 @@ public:
return q->y(); return q->y();
} }
bool visible() const {
return q->isVisible();
}
void setVisible(bool visible) {
q->setVisible(visible);
}
int globalY() const { int globalY() const {
if (q->parentWidget()) if (q->parentWidget())
return q->mapToGlobal(QPoint(1,y())).y(); return q->mapToGlobal(QPoint(1,y())).y();
@@ -511,6 +527,13 @@ bool ResizeEventFilter::eventFilter(QObject *obj, QEvent *event)
m_dui_target->emitMouseOverChanged(); m_dui_target->emitMouseOverChanged();
return QObject::eventFilter(obj, event); return QObject::eventFilter(obj, event);
} }
} else if ((event->type() == QEvent::Show) || (event->type() == QEvent::Hide)) {
if (obj
&& obj->isWidgetType()
&& obj == m_target) {
m_dui_target->emitVisibleChanged();
return QObject::eventFilter(obj, event);
}
} }
return QObject::eventFilter(obj, event); return QObject::eventFilter(obj, event);
} }