Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
ScreenSetupModel.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2012 Symless Ltd.
4 * SPDX-FileCopyrightText: (C) 2008 Volker Lanz <vl@fidra.de>
5 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6 */
7
8#pragma once
9
10#include <QAbstractTableModel>
11#include <QList>
12#include <QString>
13#include <QStringList>
14
16
17class ScreenSetupView;
19
20class ScreenSetupModel : public QAbstractTableModel
21{
22 Q_OBJECT
23
24 friend class ScreenSetupView;
25 friend class ServerConfigDialog;
26
27public:
28 ScreenSetupModel(ScreenList &screens, int numColumns, int numRows);
29
30 static const QString &mimeType()
31 {
32 return m_MimeType;
33 }
34 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
35 int rowCount() const
36 {
37 return m_NumRows;
38 }
39 int columnCount() const
40 {
41 return m_NumColumns;
42 }
43 int rowCount(const QModelIndex &) const override
44 {
45 return rowCount();
46 }
47 int columnCount(const QModelIndex &) const override
48 {
49 return columnCount();
50 }
51 Qt::DropActions supportedDropActions() const override;
52 Qt::ItemFlags flags(const QModelIndex &index) const override;
53 QStringList mimeTypes() const override;
54 QMimeData *mimeData(const QModelIndexList &indexes) const override;
55 bool isFull() const;
56
57Q_SIGNALS:
59
60protected:
61 bool
62 dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override;
63 const Screen &screen(const QModelIndex &index) const
64 {
65 return screen(index.column(), index.row());
66 }
67 Screen &screen(const QModelIndex &index)
68 {
69 return screen(index.column(), index.row());
70 }
71 const Screen &screen(int column, int row) const
72 {
73 return m_Screens[row * m_NumColumns + column];
74 }
75 Screen &screen(int column, int row)
76 {
77 return m_Screens[row * m_NumColumns + column];
78 }
79 void addScreen(const Screen &newScreen);
80
81private:
82 ScreenList &m_Screens;
83 const int m_NumColumns;
84 const int m_NumRows;
85
86 static const QString m_MimeType;
87};
static void FAR int int flags
Definition ArchNetworkWinsock.cpp:37
static int void FAR * data
Definition ArchNetworkWinsock.cpp:34
Definition ScreenList.h:12
int columnCount() const
Definition ScreenSetupModel.h:39
QStringList mimeTypes() const override
Definition ScreenSetupModel.cpp:83
friend class ScreenSetupView
Definition ScreenSetupModel.h:24
void addScreen(const Screen &newScreen)
Definition ScreenSetupModel.cpp:151
friend class ServerConfigDialog
Definition ScreenSetupModel.h:25
const Screen & screen(const QModelIndex &index) const
Definition ScreenSetupModel.h:63
ScreenSetupModel(ScreenList &screens, int numColumns, int numRows)
Definition ScreenSetupModel.cpp:19
int columnCount(const QModelIndex &) const override
Definition ScreenSetupModel.h:47
int rowCount(const QModelIndex &) const override
Definition ScreenSetupModel.h:43
Qt::DropActions supportedDropActions() const override
Definition ScreenSetupModel.cpp:78
QMimeData * mimeData(const QModelIndexList &indexes) const override
Definition ScreenSetupModel.cpp:88
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
Definition ScreenSetupModel.cpp:105
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Definition ScreenSetupModel.cpp:39
Screen & screen(const QModelIndex &index)
Definition ScreenSetupModel.h:67
bool isFull() const
Definition ScreenSetupModel.cpp:157
static const QString & mimeType()
Definition ScreenSetupModel.h:30
Screen & screen(int column, int row)
Definition ScreenSetupModel.h:75
int rowCount() const
Definition ScreenSetupModel.h:35
const Screen & screen(int column, int row) const
Definition ScreenSetupModel.h:71
Definition ScreenSetupView.h:22
Definition Screen.h:26
Definition ServerConfigDialog.h:23