Add some properties to QWindow
x,y,width,height,visible and orientation Includes slot setters and notify signals for maximal QML compatibility. Change-Id: I124399093c00f8ad1485d4fbae816dfbe3027eff Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
This commit is contained in:
parent
c226021600
commit
ce829cbb85
@ -790,12 +790,22 @@ void QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePr
|
|||||||
QGuiApplication::sendSpontaneousEvent(window, &e);
|
QGuiApplication::sendSpontaneousEvent(window, &e);
|
||||||
|
|
||||||
window->d_func()->resizeEventPending = false;
|
window->d_func()->resizeEventPending = false;
|
||||||
|
|
||||||
|
if (cr.width() != newRect.width())
|
||||||
|
window->widthChanged(cr.width());
|
||||||
|
if (cr.height() != newRect.height())
|
||||||
|
window->heightChanged(cr.height());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isMove) {
|
if (isMove) {
|
||||||
//### frame geometry
|
//### frame geometry
|
||||||
QMoveEvent e(newRect.topLeft(), cr.topLeft());
|
QMoveEvent e(newRect.topLeft(), cr.topLeft());
|
||||||
QGuiApplication::sendSpontaneousEvent(window, &e);
|
QGuiApplication::sendSpontaneousEvent(window, &e);
|
||||||
|
|
||||||
|
if (cr.x() != newRect.x())
|
||||||
|
window->xChanged(cr.x());
|
||||||
|
if (cr.y() != newRect.y())
|
||||||
|
window->yChanged(cr.y());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,6 +129,7 @@ void QWindow::setVisible(bool visible)
|
|||||||
if (d->visible == visible)
|
if (d->visible == visible)
|
||||||
return;
|
return;
|
||||||
d->visible = visible;
|
d->visible = visible;
|
||||||
|
emit visibleChanged(visible);
|
||||||
|
|
||||||
if (!d->platformWindow)
|
if (!d->platformWindow)
|
||||||
create();
|
create();
|
||||||
@ -383,10 +384,14 @@ Qt::ScreenOrientation QWindow::orientation() const
|
|||||||
void QWindow::setOrientation(Qt::ScreenOrientation orientation)
|
void QWindow::setOrientation(Qt::ScreenOrientation orientation)
|
||||||
{
|
{
|
||||||
Q_D(QWindow);
|
Q_D(QWindow);
|
||||||
|
if (orientation == d->orientation)
|
||||||
|
return;
|
||||||
|
|
||||||
d->orientation = orientation;
|
d->orientation = orientation;
|
||||||
if (d->platformWindow) {
|
if (d->platformWindow) {
|
||||||
d->platformWindow->setOrientation(orientation);
|
d->platformWindow->setOrientation(orientation);
|
||||||
}
|
}
|
||||||
|
emit orientationChanged(orientation);
|
||||||
}
|
}
|
||||||
|
|
||||||
Qt::WindowState QWindow::windowState() const
|
Qt::WindowState QWindow::windowState() const
|
||||||
@ -519,12 +524,25 @@ void QWindow::setSizeIncrement(const QSize &size)
|
|||||||
void QWindow::setGeometry(const QRect &rect)
|
void QWindow::setGeometry(const QRect &rect)
|
||||||
{
|
{
|
||||||
Q_D(QWindow);
|
Q_D(QWindow);
|
||||||
|
if (rect == geometry())
|
||||||
|
return;
|
||||||
|
QRect oldRect = geometry();
|
||||||
|
|
||||||
d->positionPolicy = QWindowPrivate::WindowFrameExclusive;
|
d->positionPolicy = QWindowPrivate::WindowFrameExclusive;
|
||||||
if (d->platformWindow) {
|
if (d->platformWindow) {
|
||||||
d->platformWindow->setGeometry(rect);
|
d->platformWindow->setGeometry(rect);
|
||||||
} else {
|
} else {
|
||||||
d->geometry = rect;
|
d->geometry = rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rect.x() != oldRect.x())
|
||||||
|
emit xChanged(rect.x());
|
||||||
|
if (rect.y() != oldRect.y())
|
||||||
|
emit yChanged(rect.y());
|
||||||
|
if (rect.width() != oldRect.width())
|
||||||
|
emit widthChanged(rect.width());
|
||||||
|
if (rect.height() != oldRect.height())
|
||||||
|
emit heightChanged(rect.height());
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@ -85,6 +85,12 @@ class Q_GUI_EXPORT QWindow : public QObject, public QSurface
|
|||||||
Q_DECLARE_PRIVATE(QWindow)
|
Q_DECLARE_PRIVATE(QWindow)
|
||||||
|
|
||||||
Q_PROPERTY(QString windowTitle READ windowTitle WRITE setWindowTitle)
|
Q_PROPERTY(QString windowTitle READ windowTitle WRITE setWindowTitle)
|
||||||
|
Q_PROPERTY(int x READ x WRITE setX NOTIFY xChanged)
|
||||||
|
Q_PROPERTY(int y READ y WRITE setY NOTIFY yChanged)
|
||||||
|
Q_PROPERTY(int width READ width WRITE setWidth NOTIFY widthChanged)
|
||||||
|
Q_PROPERTY(int height READ height WRITE setHeight NOTIFY heightChanged)
|
||||||
|
Q_PROPERTY(bool visible READ visible WRITE setVisible NOTIFY visibleChanged)
|
||||||
|
Q_PROPERTY(Qt::ScreenOrientation orientation READ orientation WRITE setOrientation NOTIFY orientationChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
enum SurfaceType { RasterSurface, OpenGLSurface };
|
enum SurfaceType { RasterSurface, OpenGLSurface };
|
||||||
@ -96,7 +102,6 @@ public:
|
|||||||
void setSurfaceType(SurfaceType surfaceType);
|
void setSurfaceType(SurfaceType surfaceType);
|
||||||
SurfaceType surfaceType() const;
|
SurfaceType surfaceType() const;
|
||||||
|
|
||||||
void setVisible(bool visible);
|
|
||||||
bool visible() const;
|
bool visible() const;
|
||||||
|
|
||||||
void create();
|
void create();
|
||||||
@ -201,6 +206,8 @@ public:
|
|||||||
QPoint mapFromGlobal(const QPoint &pos) const;
|
QPoint mapFromGlobal(const QPoint &pos) const;
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
|
void setVisible(bool visible);
|
||||||
|
|
||||||
inline void show() { setVisible(true); }
|
inline void show() { setVisible(true); }
|
||||||
inline void hide() { setVisible(false); }
|
inline void hide() { setVisible(false); }
|
||||||
|
|
||||||
@ -215,9 +222,45 @@ public Q_SLOTS:
|
|||||||
|
|
||||||
void setWindowTitle(const QString &);
|
void setWindowTitle(const QString &);
|
||||||
|
|
||||||
|
void setX(int arg)
|
||||||
|
{
|
||||||
|
if (x() != arg)
|
||||||
|
setGeometry(QRect(arg, y(), width(), height()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void setY(int arg)
|
||||||
|
{
|
||||||
|
if (y() != arg)
|
||||||
|
setGeometry(QRect(x(), arg, width(), height()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void setWidth(int arg)
|
||||||
|
{
|
||||||
|
if (width() != arg)
|
||||||
|
setGeometry(QRect(x(), y(), arg, height()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void setHeight(int arg)
|
||||||
|
{
|
||||||
|
if (height() != arg)
|
||||||
|
setGeometry(QRect(x(), y(), width(), arg));
|
||||||
|
}
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void backBufferReady();
|
void backBufferReady();
|
||||||
|
|
||||||
|
void xChanged(int arg);
|
||||||
|
|
||||||
|
void yChanged(int arg);
|
||||||
|
|
||||||
|
void widthChanged(int arg);
|
||||||
|
|
||||||
|
void heightChanged(int arg);
|
||||||
|
|
||||||
|
void visibleChanged(bool arg);
|
||||||
|
|
||||||
|
void orientationChanged(Qt::ScreenOrientation arg);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void exposeEvent(QExposeEvent *);
|
virtual void exposeEvent(QExposeEvent *);
|
||||||
virtual void resizeEvent(QResizeEvent *);
|
virtual void resizeEvent(QResizeEvent *);
|
||||||
|
Loading…
Reference in New Issue
Block a user