Deskflow 1.26.0.418
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
ServerConfigDialog.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2025 - 2026 Chris Rizzitello <sithlord48@gmail.com>
4 * SPDX-FileCopyrightText: (C) 2012 - 2016 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 "ScreenSetupModel.h"
13#include "config/ServerConfig.h"
14
15#include <QDialog>
16
18class QItemSelection;
19
20namespace Ui {
21class ServerConfigDialog;
22}
23
24class ServerConfigDialog : public QDialog
25{
26 Q_OBJECT
27
28public:
29 ServerConfigDialog(QWidget *parent, ServerConfig &config);
31 bool addClient(const QString &clientName);
32 void message(const QString &message)
33 {
34 m_message = message;
35 }
36
37protected:
38 void onScreenRemoved();
39 void addClient();
40 bool addComputer(const QString &clientName, bool doSilent);
41
42 void addHotkey();
43 void editHotkey();
44 void removeHotkey();
45 void listHotkeysSelectionChanged(const QItemSelection &selected, [[maybe_unused]] const QItemSelection &deselected);
46
47 void addAction();
48 void editAction();
49 void removeAction();
50 void listActionsSelectionChanged(const QItemSelection &selected, [[maybe_unused]] const QItemSelection &deselected);
51
52 void toggleSwitchDoubleTap(bool enable);
53 void setSwitchDoubleTap(int within);
54
55 void toggleSwitchDelay(bool enable);
56 void setSwitchDelay(int delay);
57
58 void toggleDefaultLockToComputerState(bool state);
59 void toggleLockToComputer(bool disabled);
60 void toggleWin32Foreground(bool enabled);
61
62 void toggleClipboard(bool enabled);
63 void setClipboardLimit(int limit);
64
65 void toggleHeartbeat(bool enabled);
66 void setHeartbeat(int rate);
67
68 void toggleRelativeMouseMoves(bool enabled);
69 void toggleProtocol();
70
71 void toggleExternalConfig(bool enable = false);
72 bool browseConfigFile();
73
75 {
76 return m_serverConfig;
77 }
79 {
80 m_originalServerConfig = s;
81 }
83 {
84 return m_screenSetupModel;
85 }
86
87private:
88 void save();
89 void cancel();
90 void loadFromConfig();
91 void resetFromSettings();
92 void refreshControls();
93 void initConnections() const;
94 void updateControls() const;
95 void restoreFromDefaults();
96 void setServerConfig();
97 bool isGeneralConfigModified() const;
98 bool isGeneralConfigDefault() const;
99 void setButtonBoxEnabledButtons() const;
100 std::unique_ptr<Ui::ServerConfigDialog> ui;
101 QString m_message = "";
102 int m_columns;
103 int m_rows;
104 ServerConfig &m_originalServerConfig;
105 NetworkProtocol m_protocol;
106 bool m_enableClipboard;
107 bool m_enableHeartbeat;
108 int m_heartbeatRate;
109 int m_switchDelay;
110 int m_switchDoubleTap;
111 uint m_clipboardSize;
112 bool m_relativeMouseMoves;
113 bool m_enableSwitchDelay;
114 bool m_enableSwitchDoubleTap;
115 bool m_originalServerConfigIsExternal;
116 bool m_win32keepForeground;
117 bool m_disableLockToComputer;
118 bool m_defaultLockToComputerState;
119 QString m_originalServerConfigUsesExternalFile;
120 ServerConfig m_serverConfig;
121 ScreenSetupModel m_screenSetupModel;
122 SettingsDialogButtonBox *m_buttonBox = nullptr;
123};
NetworkProtocol
Definition NetworkProtocol.h:15
Definition ScreenSetupModel.h:21
void removeHotkey()
Definition ServerConfigDialog.cpp:139
void toggleWin32Foreground(bool enabled)
Definition ServerConfigDialog.cpp:335
void toggleProtocol()
Definition ServerConfigDialog.cpp:276
void setOriginalServerConfig(const ServerConfig &s)
Definition ServerConfigDialog.h:78
void toggleDefaultLockToComputerState(bool state)
Definition ServerConfigDialog.cpp:319
void removeAction()
Definition ServerConfigDialog.cpp:209
void toggleSwitchDoubleTap(bool enable)
Definition ServerConfigDialog.cpp:289
void message(const QString &message)
Definition ServerConfigDialog.h:32
void addAction()
Definition ServerConfigDialog.cpp:168
void setSwitchDelay(int delay)
Definition ServerConfigDialog.cpp:311
void toggleHeartbeat(bool enabled)
Definition ServerConfigDialog.cpp:253
ServerConfig & serverConfig()
Definition ServerConfigDialog.h:74
void toggleSwitchDelay(bool enable)
Definition ServerConfigDialog.cpp:304
bool addComputer(const QString &clientName, bool doSilent)
Definition ServerConfigDialog.cpp:570
void setSwitchDoubleTap(int within)
Definition ServerConfigDialog.cpp:296
void addClient()
Definition ServerConfigDialog.cpp:343
void toggleLockToComputer(bool disabled)
Definition ServerConfigDialog.cpp:327
void setClipboardLimit(int limit)
Definition ServerConfigDialog.cpp:244
void toggleRelativeMouseMoves(bool enabled)
Definition ServerConfigDialog.cpp:268
void listActionsSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Definition ServerConfigDialog.cpp:282
bool addClient(const QString &clientName)
Definition ServerConfigDialog.cpp:56
~ServerConfigDialog() override
void onScreenRemoved()
Definition ServerConfigDialog.cpp:348
void toggleExternalConfig(bool enable=false)
Definition ServerConfigDialog.cpp:354
void toggleClipboard(bool enabled)
Definition ServerConfigDialog.cpp:229
void listHotkeysSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
Definition ServerConfigDialog.cpp:153
void editHotkey()
Definition ServerConfigDialog.cpp:123
void addHotkey()
Definition ServerConfigDialog.cpp:112
ScreenSetupModel & model()
Definition ServerConfigDialog.h:82
void editAction()
Definition ServerConfigDialog.cpp:186
ServerConfigDialog(QWidget *parent, ServerConfig &config)
Definition ServerConfigDialog.cpp:26
bool browseConfigFile()
Definition ServerConfigDialog.cpp:363
void setHeartbeat(int rate)
Definition ServerConfigDialog.cpp:260
Definition ServerConfig.h:25
Definition SettingsDialogButtonBox.h:15
Definition AboutDialog.h:13