玉兔远程控制 0.1.0-bate8
载入中...
搜索中...
未找到
ParameterPlugin.cpp
1// Author: Kang Lin <kl222@126.com>
2
3#include "ParameterGlobal.h"
4#include "RabbitCommonTools.h"
5#include "RabbitCommonDir.h"
6#include "ParameterPlugin.h"
7
8Q_DECLARE_METATYPE(CParameterPlugin::NameStyles)
9CParameterPlugin::CParameterPlugin(QObject *parent)
10 : CParameter(parent)
11 , m_pGlobalParameter(new CParameterGlobal(this, "Global"))
12 , m_bCaptureAllKeyboard(true)
13 , m_bDesktopShortcutsScript(false)
14 , m_bEnableLocalInputMethod(false)
15 , m_bPromptAdministratorPrivilege(!RabbitCommon::CTools::Instance()->HasAdministratorPrivilege())
16 , m_bEnableSystemUserToUser(true)
17 , m_bSavePassword(false)
18 , m_PromptType(PromptType::First)
19 , m_nPromptCount(0)
20 , m_bViewPassowrd(false)
21 , m_bUseSystemCredential(true)
22 , m_NameStyles(NameStyle::ServerName | NameStyle::SecurityLevel)
23 , m_AdaptWindows(CFrmViewer::ADAPT_WINDOWS::KeepAspectRationToWindow)
24 , m_bEnableSetPluginsPath(false)
25 , m_WhiteList(this, "Plugin/Paths/Whilelist")
26 , m_BlackList(this, "Plugin/Paths/BlackList")
27 , m_szPluginsPath(RabbitCommon::CDir::Instance()->GetDirPlugins())
28 , m_bOnlyLoadInWhitelist(false)
29 , m_Record(this)
30 , m_MediaDevices(this)
31#if defined(HAVE_QTERMWIDGET)
32 , m_Terminal(this)
33#endif
34{}
35
36CParameterPlugin::~CParameterPlugin()
37{
38 if(m_pGlobalParameter) {
39 delete m_pGlobalParameter;
40 m_pGlobalParameter = nullptr;
41 }
42}
43
44CParameterGlobal* CParameterPlugin::GetGlobalParameters()
45{
46 return m_pGlobalParameter;
47}
48
49int CParameterPlugin::OnLoad(QSettings &set)
50{
51 set.beginGroup("Plugin");
52 SetCaptureAllKeyboard(
53 set.value("CaptureAllKeyboard", GetCaptureAllKeyboard()).toBool());
54 SetDesktopShortcutsScript(set.value("DesktopShortcutsScript/Enable",
55 GetDesktopShortcutsScript()).toBool());
56 SetDisableDesktopShortcutsScript(
57 set.value("DesktopShortcutsScript/Disable",
58 GetDisableDesktopShortcutsScript()).toString());
59 SetRestoreDesktopShortcutsScript(
60 set.value("DesktopShortcutsScript/Restore",
61 GetRestoreDesktopShortcutsScript()).toString());
62 SetEnableLocalInputMethod(
63 set.value("InputMethod", GetEnableLocalInputMethod()).toBool());
64 // Note: SetShowHookAdministratorPrivilege must precede SetHookKeyboard
65 SetPromptAdministratorPrivilege(
66 set.value("AdministratorPrivilege/Prompt",
67 GetPromptAdministratorPrivilege()).toBool());
68 SetEnableSystemUserToUser(set.value("UserName/Enable",
69 GetEnableSystemUserToUser()).toBool());
70 SetPromptType(static_cast<PromptType>(
71 set.value("Password/Prompty/Type",
72 static_cast<int>(GetPromptType())).toInt()
73 ));
74 SetSavePassword(set.value("Password/Save", GetSavePassword()).toBool());
75 SetViewPassowrd(set.value("Password/View", GetViewPassowrd()).toBool());
76 SetUseSystemCredential(set.value("Password/UseSystemCredential",
77 GetUseSystemCredential()).toBool());
78 SetNameStyles(static_cast<NameStyle>(
79 set.value("Operate/NameStyles", (int)GetNameStyles()).toInt()));
80 SetAdaptWindows((CFrmViewer::ADAPT_WINDOWS)set.value("Viewer/AdaptWindows",
81 (int)GetAdaptWindows()).toInt());
82
83 SetPluginsPath(set.value("Paths", GetPluginsPath()).toStringList());
84 SetEnableSetPluginsPath(
85 set.value("Paths/Enable", GetEnableSetPluginsPath()).toBool());
86 SetOnlyLoadInWhitelist(
87 set.value("OnlyLoadInWhitelist", GetOnlyLoadInWhitelist()).toBool());
88
89 set.endGroup();
90
91 return 0;
92}
93
94int CParameterPlugin::OnSave(QSettings& set)
95{
96 set.beginGroup("Plugin");
97 set.setValue("CaptureAllKeyboard", GetCaptureAllKeyboard());
98 set.setValue("DesktopShortcutsScript/Enable", GetDesktopShortcutsScript());
99 set.setValue("DesktopShortcutsScript/Disable", GetDisableDesktopShortcutsScript());
100 set.setValue("DesktopShortcutsScript/Restore", GetRestoreDesktopShortcutsScript());
101 set.setValue("InputMethod", GetEnableLocalInputMethod());
102 set.setValue("AdministratorPrivilege/Prompt", GetPromptAdministratorPrivilege());
103 set.setValue("UserName/Enable", GetEnableSystemUserToUser());
104 set.setValue("Password/Prompty/Type", static_cast<int>(GetPromptType()));
105 set.setValue("Password/Save", GetSavePassword());
106 set.setValue("Password/View", GetViewPassowrd());
107 set.setValue("Password/UseSystemCredential", GetUseSystemCredential());
108 set.setValue("Operate/NameStyles", (int)GetNameStyles());
109 set.setValue("Viewer/AdaptWindows", (int)GetAdaptWindows());
110
111 set.setValue("Paths", GetPluginsPath());
112 set.setValue("Paths/Enable", GetEnableSetPluginsPath());
113 set.setValue("OnlyLoadInWhitelist", GetOnlyLoadInWhitelist());
114
115 set.endGroup();
116 return 0;
117}
118
119bool CParameterPlugin::GetCaptureAllKeyboard() const
120{
121 return m_bCaptureAllKeyboard;
122}
123
124void CParameterPlugin::SetCaptureAllKeyboard(bool bCapture)
125{
126 if(m_bCaptureAllKeyboard == bCapture)
127 return;
128 m_bCaptureAllKeyboard = bCapture;
129 SetModified(true);
130 emit sigCaptureAllKeyboard();
131}
132
133bool CParameterPlugin::GetDesktopShortcutsScript() const
134{
135 return m_bDesktopShortcutsScript;
136}
137
138void CParameterPlugin::SetDesktopShortcutsScript(bool newDesktopShortcutsScript)
139{
140 if(m_bDesktopShortcutsScript == newDesktopShortcutsScript)
141 return;
142 m_bDesktopShortcutsScript = newDesktopShortcutsScript;
143 SetModified(true);
144}
145
146QString CParameterPlugin::GetRestoreDesktopShortcutsScript() const
147{
148 return m_szRestoreDesktopShortcutsScript;
149}
150
151void CParameterPlugin::SetRestoreDesktopShortcutsScript(const QString &newRestoreDesktopShortcutsScript)
152{
153 if(m_szRestoreDesktopShortcutsScript == newRestoreDesktopShortcutsScript)
154 return;
155 m_szRestoreDesktopShortcutsScript = newRestoreDesktopShortcutsScript;
156 SetModified(true);
157}
158
159QString CParameterPlugin::GetDisableDesktopShortcutsScript() const
160{
161 return m_szDisableDesktopShortcutsScript;
162}
163
164void CParameterPlugin::SetDisableDesktopShortcutsScript(const QString &newDisableDesktopShortcutsScript)
165{
166 if(m_szDisableDesktopShortcutsScript == newDisableDesktopShortcutsScript)
167 return;
168 m_szDisableDesktopShortcutsScript = newDisableDesktopShortcutsScript;
169 SetModified(true);
170}
171
172bool CParameterPlugin::GetEnableLocalInputMethod() const
173{
174 return m_bEnableLocalInputMethod;
175}
176
177void CParameterPlugin::SetEnableLocalInputMethod(bool enable)
178{
179 if(m_bEnableLocalInputMethod == enable)
180 return;
181 m_bEnableLocalInputMethod = enable;
182 SetModified(true);
183}
184
185bool CParameterPlugin::GetPromptAdministratorPrivilege()
186{
187 return m_bPromptAdministratorPrivilege;
188}
189
190void CParameterPlugin::SetPromptAdministratorPrivilege(bool bShow)
191{
192 if(bShow == m_bPromptAdministratorPrivilege)
193 return;
194 SetModified(true);
195 m_bPromptAdministratorPrivilege = bShow;
196 emit sigPromptAdministratorPrivilege();
197}
198
199bool CParameterPlugin::GetEnableSystemUserToUser() const
200{
201 return m_bEnableSystemUserToUser;
202}
203
204void CParameterPlugin::SetEnableSystemUserToUser(bool enable)
205{
206 if(m_bEnableSystemUserToUser == enable)
207 return;
208 m_bEnableSystemUserToUser = enable;
209 SetModified(true);
210}
211
212const QString &CParameterPlugin::GetEncryptKey() const
213{
214 return m_szEncryptKey;
215}
216
217void CParameterPlugin::SetEncryptKey(const QString &newPassword)
218{
219 if (m_szEncryptKey == newPassword)
220 return;
221 m_szEncryptKey = newPassword;
222 SetModified(true);
223 emit sigEncryptKeyChanged();
224}
225
226const bool &CParameterPlugin::GetSavePassword() const
227{
228 return m_bSavePassword;
229}
230
231void CParameterPlugin::SetSavePassword(bool NewAutoSavePassword)
232{
233 if (m_bSavePassword == NewAutoSavePassword)
234 return;
235 SetModified(true);
236 m_bSavePassword = NewAutoSavePassword;
237 emit sigSavePasswordChanged(m_bSavePassword);
238}
239
240CParameterPlugin::PromptType CParameterPlugin::GetPromptType() const
241{
242 return m_PromptType;
243}
244
245void CParameterPlugin::SetPromptType(PromptType NewPromptType)
246{
247 if (m_PromptType == NewPromptType)
248 return;
249 SetModified(true);
250 m_PromptType = NewPromptType;
251 emit sigPromptTypeChanged(m_PromptType);
252}
253
254int CParameterPlugin::GetPromptCount() const
255{
256 return m_nPromptCount;
257}
258
259void CParameterPlugin::SetPromptCount(int NewPromptCount)
260{
261 if (m_nPromptCount == NewPromptCount)
262 return;
263 m_nPromptCount = NewPromptCount;
264 SetModified(true);
265 emit sigPromptCountChanged(m_nPromptCount);
266}
267
268bool CParameterPlugin::GetViewPassowrd() const
269{
270 return m_bViewPassowrd;
271}
272
273void CParameterPlugin::SetViewPassowrd(bool NewViewPassowrd)
274{
275 if (m_bViewPassowrd == NewViewPassowrd)
276 return;
277 m_bViewPassowrd = NewViewPassowrd;
278 SetModified(true);
279 emit sigViewPassowrdChanged(m_bViewPassowrd);
280}
281
282bool CParameterPlugin::GetUseSystemCredential() const
283{
284 return m_bUseSystemCredential;
285}
286
287void CParameterPlugin::SetUseSystemCredential(bool newUseSystemCredential)
288{
289 if(m_bUseSystemCredential == newUseSystemCredential)
290 return;
291 m_bUseSystemCredential = newUseSystemCredential;
292 SetModified(true);
293}
294
295CParameterPlugin::NameStyles CParameterPlugin::GetNameStyles() const
296{
297 return m_NameStyles;
298}
299
300void CParameterPlugin::SetNameStyles(const NameStyles &newNameStyles)
301{
302 if (m_NameStyles == newNameStyles)
303 return;
304 m_NameStyles = newNameStyles;
305 SetModified(true);
306 emit sigNameStylesChanged();
307}
308
309CFrmViewer::ADAPT_WINDOWS CParameterPlugin::GetAdaptWindows()
310{
311 return m_AdaptWindows;
312}
313
314void CParameterPlugin::SetAdaptWindows(CFrmViewer::ADAPT_WINDOWS aw)
315{
316 if(m_AdaptWindows == aw)
317 return;
318 m_AdaptWindows = aw;
319 SetModified(true);
320 emit sigAdaptWindowsChanged();
321}
322
323bool CParameterPlugin::GetEnableSetPluginsPath() const
324{
325 return m_bEnableSetPluginsPath;
326}
327
328void CParameterPlugin::SetEnableSetPluginsPath(bool newEnableSetPluginsPath)
329{
330 if(m_bEnableSetPluginsPath == newEnableSetPluginsPath)
331 return;
332 m_bEnableSetPluginsPath = newEnableSetPluginsPath;
333 SetModified(true);
334}
335
336QStringList CParameterPlugin::GetPluginsPath() const
337{
338 return m_szPluginsPath;
339}
340
341void CParameterPlugin::SetPluginsPath(const QStringList &newPluginsPath)
342{
343 m_szPluginsPath = newPluginsPath;
344}
345
346bool CParameterPlugin::GetOnlyLoadInWhitelist() const
347{
348 return m_bOnlyLoadInWhitelist;
349}
350
351void CParameterPlugin::SetOnlyLoadInWhitelist(bool newOnlyLoadInWhitelist)
352{
353 if(m_bOnlyLoadInWhitelist = newOnlyLoadInWhitelist)
354 return;
355 m_bOnlyLoadInWhitelist = newOnlyLoadInWhitelist;
356 SetModified(true);
357}
用于显示从 CConnectDesktop 输出的图像,和向 CConnectDesktop 发送键盘、鼠标事件。
Definition FrmViewer.h:48
ADAPT_WINDOWS
窗口适配枚举常量
Definition FrmViewer.h:60
virtual int OnSave(QSettings &set) override
virtual int OnLoad(QSettings &set) override
参数接口
Definition Parameter.h:218
int SetModified(bool bModified=true)
在设置参数时,如果有修改,则调用。