@@ -18,11 +18,8 @@
1818
1919// Qt
2020#include <QGuiApplication>
21−#include <QScreen>
2221#include <QDebug>
2322
24−Q_DECLARE_METATYPE(QScreen*)
25−
2623Screens::Screens(QObject *parent) :
2724 QAbstractListModel(parent)
2825{
@@ -32,13 +29,18 @@ Screens::Screens(QObject *parent) :
3229 QPoint lastPoint(0,0);
3330 for (int i = 0; i < screenCount; ++i) {
3431 auto screen = new Screen();
35− screen->enabled = i == 0;
36− screen->name = QString("Monitor %1").arg(i);
37− screen->sizes = { QSize(640,480), QSize(1024,748), QSize(1280,1024), QSize(1440,900), QSize(1920,1080) };
38− screen->geometry = QRect(lastPoint.x(), lastPoint.y(), 1024, 786 );
32+ screen->m_active = i == 0;
33+ screen->m_name = QString("Monitor %1").arg(i);
34+ screen->m_position = QPoint(lastPoint.x(), lastPoint.y());
35+ screen->m_sizes.append(new ScreenMode(50, QSize(640,480)));
36+ screen->m_sizes.append(new ScreenMode(60, QSize(1280,1024)));
37+ screen->m_sizes.append(new ScreenMode(60, QSize(1440,900)));
38+ screen->m_sizes.append(new ScreenMode(60, QSize(1920,1080)));
39+ screen->m_currentModeIndex = 3;
40+ screen->m_physicalSize = QSize(300,200);
3941 m_screenList.append(screen);
4042
41− lastPoint.rx() += screen->geometry.width();
43+ lastPoint.rx() += screen->m_sizes[screen->m_currentModeIndex]->size.width();
4244 }
4345}
4446
@@ -52,13 +54,6 @@ QHash<int, QByteArray> Screens::roleNames() const
5254{
5355 QHash<int, QByteArray> roles;
5456 roles[ScreenRole] = "screen";
55− roles[OutputTypeRole] = "outputType";
56− roles[EnabledRole] = "enabled";
57− roles[NameRole] = "name";
58− roles[ScaleRole] = "scale";
59− roles[FormFactorRole] = "formFactor";
60− roles[GeometryRole] = "geometry";
61− roles[SizesRole] = "sizes";
6257 return roles;
6358}
6459
@@ -70,28 +65,7 @@ QVariant Screens::data(const QModelIndex &index, int role) const
7065
7166 switch(role) {
7267 case ScreenRole:
73− return QVariant::fromValue(m_screenList.at(index.row())->qScreen);
74− case OutputTypeRole:
75− return m_screenList.at(index.row())->outputTypes;
76− case EnabledRole:
77− return m_screenList.at(index.row())->enabled;
78− case NameRole:
79− return m_screenList.at(index.row())->name;
80− case ScaleRole:
81− return m_screenList.at(index.row())->scale;
82− case FormFactorRole:
83− return m_screenList.at(index.row())->formFactor;
84− case GeometryRole:
85− return m_screenList.at(index.row())->geometry;
86− case SizesRole:
87− {
88− QVariantList sizes;
89− auto availableSizes = m_screenList.at(index.row())->sizes;
90− Q_FOREACH(auto size, availableSizes) {
91− sizes.append(QVariant(size));
92− }
93− return sizes;
94− }
68+ return QVariant::fromValue(m_screenList.at(index.row()));
9569 }
9670
9771 return QVariant();
@@ -109,4 +83,32 @@ int Screens::count() const
10983
11084void Screens::activateScreen(int)
11185{
86+ qWarning("Not Implemented");
87+}
88+
89+Screen::Screen(QObject* parent)
90+ : QObject(parent)
91+{
92+}
93+
94+Screen::~Screen()
95+{
96+ qDeleteAll(m_sizes);
97+ m_sizes.clear();
98+}
99+
100+QQmlListProperty<ScreenMode> Screen::availableModes()
101+{
102+ return QQmlListProperty<ScreenMode>(this, m_sizes);
103+}
104+
105+Screen *Screen::beginConfiguration()
106+{
107+ qWarning("Not Implemented");
108+ return nullptr;
109+}
110+
111+void Screen::applyConfiguration()
112+{
113+ qWarning("Not Implemented");
112114}