diff options
Diffstat (limited to 'src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h')
-rw-r--r-- | src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h b/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h index 3d4ca9dc67..f403917f8c 100644 --- a/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h +++ b/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h @@ -56,6 +56,8 @@ #include <QtCore/qurl.h> #include <QtCore/qtimer.h> #include <QtCore/qsettings.h> +#include <QtCore/qsize.h> +#include <QtCore/qdatastream.h> QT_BEGIN_NAMESPACE @@ -64,23 +66,46 @@ class QWindow; class QQmlPreviewPosition { public: + class ScreenData { + public: + bool operator==(const QQmlPreviewPosition::ScreenData &other) const; + QString name; + QSize size; + }; + class Position { + public: + QString screenName; + QPoint nativePosition; + }; + enum InitializeState { + InitializePosition, + PositionInitialized + }; + QQmlPreviewPosition(); + ~QQmlPreviewPosition(); - void setPosition(const QPoint &point); - void saveWindowPosition(); - void loadWindowPositionSettings(const QUrl &url); + + void takePosition(QWindow *window, InitializeState state = PositionInitialized); void initLastSavedWindowPosition(QWindow *window); - static const QSize currentScreenSize(QWindow *window); + void loadWindowPositionSettings(const QUrl &url); private: + void setPosition(const QQmlPreviewPosition::Position &position, QWindow *window); + QByteArray fromPositionToByteArray(const Position &position); + void readLastPositionFromByteArray(const QByteArray &array); + void saveWindowPosition(); + bool m_hasPosition = false; - QPoint m_lastWindowPosition; + InitializeState m_initializeState = InitializePosition; QSettings m_settings; QString m_settingsKey; QTimer m_savePositionTimer; + Position m_lastWindowPosition; QVector<QWindow *> m_positionedWindows; -}; + QVector<ScreenData> m_currentInitScreensData; +}; QT_END_NAMESPACE |