aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h')
-rw-r--r--src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h37
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