Deskflow 1.27.0.5
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
Computer.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 Synergy App 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 "ComputerConfig.h"
12
15
16#include <QIcon>
17#include <QList>
18#include <QPixmap>
19#include <QString>
20#include <QStringList>
21
22class QSettings;
23class QTextStream;
25
27{
29 friend class ComputerSetupModel;
30 friend class ComputerSetupView;
31
32 friend QDataStream &operator<<(QDataStream &outStream, const Computer &computer)
33 {
34 return outStream << computer.name() << computer.switchCornerSize() << computer.aliases() << computer.modifiers()
35 << computer.switchCorners() << computer.fixes() << computer.isServer();
36 }
37
38 friend QDataStream &operator>>(QDataStream &inStream, Computer &computer)
39 {
40 return inStream >> computer.m_Name >> computer.m_SwitchCornerSize >> computer.m_Aliases >> computer.m_Modifiers >>
41 computer.m_SwitchCorners >> computer.m_Fixes >> computer.m_isServer;
42 }
43
44public:
45 explicit Computer(const QString &name = QString());
46
47 [[nodiscard]] const QPixmap &pixmap() const
48 {
49 return m_Pixmap;
50 }
51 [[nodiscard]] const QString &name() const
52 {
53 return m_Name;
54 }
55 [[nodiscard]] const QStringList &aliases() const
56 {
57 return m_Aliases;
58 }
59
60 [[nodiscard]] bool isNull() const
61 {
62 return m_Name.isEmpty();
63 }
64 [[nodiscard]] int modifier(int m) const
65 {
66 return m_Modifiers[m] == static_cast<int>(KeyboardModifier::DefaultMod) ? m : m_Modifiers[m];
67 }
68 [[nodiscard]] const QList<int> &modifiers() const
69 {
70 return m_Modifiers;
71 }
72 [[nodiscard]] bool switchCorner(int c) const
73 {
74 return m_SwitchCorners[c];
75 }
76 [[nodiscard]] const QList<bool> &switchCorners() const
77 {
78 return m_SwitchCorners;
79 }
80 [[nodiscard]] int switchCornerSize() const
81 {
82 return m_SwitchCornerSize;
83 }
84 [[nodiscard]] bool fix(const Fix f) const
85 {
86 return m_Fixes[static_cast<int8_t>(f)];
87 }
88 [[nodiscard]] const QList<bool> &fixes() const
89 {
90 return m_Fixes;
91 }
92
93 void loadSettings(QSettingsProxy &settings);
94 void saveSettings(QSettingsProxy &settings) const;
95 [[nodiscard]] QString screensSection() 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 Computer &computer) const;
116
117protected:
118 QStringList &aliases()
119 {
120 return m_Aliases;
121 }
122 void setModifier(const KeyboardModifier 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, 6};
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:29
KeyboardModifier
Definition KeyboardModifier.h:23
@ DefaultMod
Definition KeyboardModifier.h:24
Fix
Definition ComputerConfig.h:29
SwitchCorner
Definition ComputerConfig.h:22
ComputerConfig()=default
Definition ComputerSettingsDialog.h:23
Definition Computer.h:27
bool switchCorner(int c) const
Definition Computer.h:72
const QPixmap & pixmap() const
Definition Computer.h:47
friend QDataStream & operator>>(QDataStream &inStream, Computer &computer)
Definition Computer.h:38
bool isServer() const
Definition Computer.h:106
void setSwitchCornerSize(const int val)
Definition Computer.h:142
const QList< bool > & fixes() const
Definition Computer.h:88
Computer(const QString &name=QString())
Definition Computer.cpp:17
QList< bool > & fixes()
Definition Computer.h:150
QStringList & aliases()
Definition Computer.h:118
const QList< int > & modifiers() const
Definition Computer.h:68
void setFix(const Fix f, const bool on)
Definition Computer.h:146
const QString & name() const
Definition Computer.h:51
int switchCornerSize() const
Definition Computer.h:80
friend class ComputerSetupView
Definition Computer.h:30
void setSwapped(const bool on)
Definition Computer.h:154
void saveSettings(QSettingsProxy &settings) const
Definition Computer.cpp:56
friend class ComputerSettingsDialog
Definition Computer.h:28
bool fix(const Fix f) const
Definition Computer.h:84
void loadSettings(QSettingsProxy &settings)
Definition Computer.cpp:22
bool swapped() const
Definition Computer.h:97
void setSwitchCorner(const SwitchCorner c, const bool on)
Definition Computer.h:134
void addAlias(const QString &alias)
Definition Computer.h:130
void markAsServer()
Definition Computer.h:110
QList< bool > & switchCorners()
Definition Computer.h:138
const QList< bool > & switchCorners() const
Definition Computer.h:76
const QStringList & aliases() const
Definition Computer.h:55
void setName(const QString &name)
Definition Computer.h:102
QList< int > & modifiers()
Definition Computer.h:126
int modifier(int m) const
Definition Computer.h:64
void setModifier(const KeyboardModifier m, const int n)
Definition Computer.h:122
QString screensSection() const
Definition Computer.cpp:110
friend QDataStream & operator<<(QDataStream &outStream, const Computer &computer)
Definition Computer.h:32
bool operator==(const Computer &computer) const
Definition Computer.cpp:115
friend class ComputerSetupModel
Definition Computer.h:29
bool isNull() const
Definition Computer.h:60
Definition QSettingsProxy.h:14