Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
Screen.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello <sithlord48@gmail.com>
4 * SPDX-FileCopyrightText: (C) 2012 Symless Ltd.
5 * SPDX-FileCopyrightText: (C) 2008 Volker Lanz <vl@fidra.de>
6 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
7 */
8
9#pragma once
10
11#include "ScreenConfig.h"
12
14
15#include <QIcon>
16#include <QList>
17#include <QPixmap>
18#include <QString>
19#include <QStringList>
20
21class QSettings;
22class QTextStream;
24
25class Screen : public ScreenConfig
26{
28 friend class ScreenSetupModel;
29 friend class ScreenSetupView;
30
31 friend QDataStream &operator<<(QDataStream &outStream, const Screen &screen)
32 {
33 return outStream << screen.name() << screen.switchCornerSize() << screen.aliases() << screen.modifiers()
34 << screen.switchCorners() << screen.fixes() << screen.isServer();
35 }
36
37 friend QDataStream &operator>>(QDataStream &inStream, Screen &screen)
38 {
39 return inStream >> screen.m_Name >> screen.m_SwitchCornerSize >> screen.m_Aliases >> screen.m_Modifiers >>
40 screen.m_SwitchCorners >> screen.m_Fixes >> screen.m_isServer;
41 }
42
43public:
44 explicit Screen(const QString &name = QString());
45
46 [[nodiscard]] const QPixmap &pixmap() const
47 {
48 return m_Pixmap;
49 }
50 [[nodiscard]] const QString &name() const
51 {
52 return m_Name;
53 }
54 [[nodiscard]] const QStringList &aliases() const
55 {
56 return m_Aliases;
57 }
58
59 [[nodiscard]] bool isNull() const
60 {
61 return m_Name.isEmpty();
62 }
63 [[nodiscard]] int modifier(int m) const
64 {
65 return m_Modifiers[m] == static_cast<int>(ScreenConfig::Modifier::DefaultMod) ? m : m_Modifiers[m];
66 }
67 [[nodiscard]] const QList<int> &modifiers() const
68 {
69 return m_Modifiers;
70 }
71 [[nodiscard]] bool switchCorner(int c) const
72 {
73 return m_SwitchCorners[c];
74 }
75 [[nodiscard]] const QList<bool> &switchCorners() const
76 {
77 return m_SwitchCorners;
78 }
79 [[nodiscard]] int switchCornerSize() const
80 {
81 return m_SwitchCornerSize;
82 }
83 [[nodiscard]] bool fix(const Fix f) const
84 {
85 return m_Fixes[static_cast<int8_t>(f)];
86 }
87 [[nodiscard]] const QList<bool> &fixes() const
88 {
89 return m_Fixes;
90 }
91
92 void loadSettings(QSettingsProxy &settings);
93 void saveSettings(QSettingsProxy &settings) const;
94 [[nodiscard]] QString screensSection() const;
95 [[nodiscard]] QString aliasesSection() const;
96
97 [[nodiscard]] bool swapped() const
98 {
99 return m_Swapped;
100 }
101
102 void setName(const QString &name)
103 {
104 m_Name = name;
105 }
106 [[nodiscard]] bool isServer() const
107 {
108 return m_isServer;
109 }
111 {
112 m_isServer = true;
113 }
114
115 bool operator==(const Screen &screen) const;
116
117protected:
118 QStringList &aliases()
119 {
120 return m_Aliases;
121 }
122 void setModifier(const Modifier m, const int n)
123 {
124 m_Modifiers[static_cast<int8_t>(m)] = n;
125 }
126 QList<int> &modifiers()
127 {
128 return m_Modifiers;
129 }
130 void addAlias(const QString &alias)
131 {
132 m_Aliases.append(alias);
133 }
134 void setSwitchCorner(const SwitchCorner c, const bool on)
135 {
136 m_SwitchCorners[static_cast<int8_t>(c)] = on;
137 }
138 QList<bool> &switchCorners()
139 {
140 return m_SwitchCorners;
141 }
142 void setSwitchCornerSize(const int val)
143 {
144 m_SwitchCornerSize = val;
145 }
146 void setFix(const Fix f, const bool on)
147 {
148 m_Fixes[static_cast<int8_t>(f)] = on;
149 }
150 QList<bool> &fixes()
151 {
152 return m_Fixes;
153 }
154 void setSwapped(const bool on)
155 {
156 m_Swapped = on;
157 }
158
159private:
160 QPixmap m_Pixmap = QIcon::fromTheme("video-display").pixmap(QSize(96, 96));
161 QString m_Name = {};
162 QStringList m_Aliases = {};
163 QList<int> m_Modifiers = {0, 1, 2, 3, 4, 5};
164 QList<bool> m_SwitchCorners = {false, false, false, false};
165 int m_SwitchCornerSize = 0;
166 QList<bool> m_Fixes{false, false, false, false};
167 bool m_Swapped = false;
168 bool m_isServer = false;
169};
static const struct sockaddr FAR * name
Definition ArchNetworkWinsock.cpp:27
Definition QSettingsProxy.h:14
SwitchCorner
Definition ScreenConfig.h:32
Fix
Definition ScreenConfig.h:40
Modifier
Definition ScreenConfig.h:21
@ DefaultMod
Definition ScreenConfig.h:22
ScreenConfig()=default
Definition ScreenSettingsDialog.h:23
Definition Screen.h:26
QList< bool > & switchCorners()
Definition Screen.h:138
friend class ScreenSetupView
Definition Screen.h:29
void setModifier(const Modifier m, const int n)
Definition Screen.h:122
void setSwitchCornerSize(const int val)
Definition Screen.h:142
void setSwitchCorner(const SwitchCorner c, const bool on)
Definition Screen.h:134
bool switchCorner(int c) const
Definition Screen.h:71
const QPixmap & pixmap() const
Definition Screen.h:46
const QList< bool > & fixes() const
Definition Screen.h:87
QString aliasesSection() const
Definition Screen.cpp:76
const QString & name() const
Definition Screen.h:50
friend class ScreenSettingsDialog
Definition Screen.h:27
void setSwapped(const bool on)
Definition Screen.h:154
friend class ScreenSetupModel
Definition Screen.h:28
int switchCornerSize() const
Definition Screen.h:79
friend QDataStream & operator<<(QDataStream &outStream, const Screen &screen)
Definition Screen.h:31
QString screensSection() const
Definition Screen.cpp:51
bool fix(const Fix f) const
Definition Screen.h:83
QList< int > & modifiers()
Definition Screen.h:126
void markAsServer()
Definition Screen.h:110
const QList< int > & modifiers() const
Definition Screen.h:67
int modifier(int m) const
Definition Screen.h:63
QList< bool > & fixes()
Definition Screen.h:150
const QStringList & aliases() const
Definition Screen.h:54
QStringList & aliases()
Definition Screen.h:118
bool isNull() const
Definition Screen.h:59
void addAlias(const QString &alias)
Definition Screen.h:130
void setName(const QString &name)
Definition Screen.h:102
bool swapped() const
Definition Screen.h:97
const QList< bool > & switchCorners() const
Definition Screen.h:75
bool isServer() const
Definition Screen.h:106
void loadSettings(QSettingsProxy &settings)
Definition Screen.cpp:21
void setFix(const Fix f, const bool on)
Definition Screen.h:146
bool operator==(const Screen &screen) const
Definition Screen.cpp:88
void saveSettings(QSettingsProxy &settings) const
Definition Screen.cpp:36
friend QDataStream & operator>>(QDataStream &inStream, Screen &screen)
Definition Screen.h:37
Screen(const QString &name=QString())
Definition Screen.cpp:16