玉兔远程控制 0.1.0-bate8
载入中...
搜索中...
未找到
ParameterPluginUI.cpp
1// Author: Kang Lin <kl222@126.com>
2
3#include <QMessageBox>
4#include <QFileDialog>
5#include <QLoggingCategory>
6#include "ParameterGlobal.h"
7#include "ParameterPluginUI.h"
8#include "ui_ParameterPluginUI.h"
9#include "RabbitCommonTools.h"
10#include "RabbitCommonDir.h"
11
12static Q_LOGGING_CATEGORY(log, "Parameter.Plugin.UI")
13CParameterPluginUI::CParameterPluginUI(QWidget *parent) :
14 CParameterUI(parent),
15 ui(new Ui::CParameterPluginUI),
16 m_pPara(nullptr)
17{
18 ui->setupUi(this);
19 setWindowTitle(tr("Plugin"));
20 if(RabbitCommon::CTools::HasAdministratorPrivilege()) {
21 ui->cbPromptAdminPrivilege->setText("");
22 ui->cbPromptAdminPrivilege->hide();
23 } else {
24 ui->cbPromptAdminPrivilege->setText(
25 tr("Prompt administrator privilege"));
26 ui->cbPromptAdminPrivilege->show();
27 }
28 ui->pbEncryptKey->setToolTip(tr("Enable view password"));
29}
30
31CParameterPluginUI::~CParameterPluginUI()
32{
33 delete ui;
34}
35
37{
38 if(!validity) return true;
39
40
41 return true;
42}
43
45{
46 if(!m_pPara)
47 return -1;
48 m_pPara->SetCaptureAllKeyboard(ui->gbCaptureAllKeyboard->isChecked());
49 m_pPara->SetDesktopShortcutsScript(ui->gpDesktopShortcutsSctipt->isChecked());
50 m_pPara->SetDisableDesktopShortcutsScript(ui->leDesktopShortcutsDisableScript->text());
51 m_pPara->SetRestoreDesktopShortcutsScript(ui->leDesktopShortcutsRestoreScript->text());
52 m_pPara->SetEnableLocalInputMethod(ui->cbEnableLocalInputMethod->isChecked());
53 m_pPara->SetPromptAdministratorPrivilege(
54 ui->cbPromptAdminPrivilege->isChecked());
55 m_pPara->SetEnableSystemUserToUser(ui->cbEnableUserName->isChecked());
56 m_pPara->SetAdaptWindows(
57 (CFrmViewer::ADAPT_WINDOWS)ui->cbViewZoom->currentData().toInt());
58
59 m_pPara->SetUseSystemCredential(ui->cbSystemCredential->isChecked());
60 m_pPara->SetEncryptKey(ui->leEncryptKey->text());
61 m_pPara->SetSavePassword(ui->cbSavePassword->isChecked());
62 m_pPara->SetViewPassowrd(ui->cbEnableViewPassword->isChecked());
63 if(ui->rbPromptFirst->isChecked())
64 m_pPara->SetPromptType(CParameterPlugin::PromptType::First);
65 if(ui->rbPromptNo->isChecked())
66 m_pPara->SetPromptType(CParameterPlugin::PromptType::No);
67
68 CParameterPlugin::NameStyles nameStyle;
69 if(ui->cbShowProtocol->isChecked())
70 nameStyle |= CParameterPlugin::NameStyle::Protocol;
71 if(ui->cbShowServerName->isChecked())
72 nameStyle |= CParameterPlugin::NameStyle::ServerName;
73 if(ui->cbShowSecurityLevel->isChecked())
74 nameStyle |= CParameterPlugin::NameStyle::SecurityLevel;
75 m_pPara->SetNameStyles(nameStyle);
76
77 return 0;
78}
79
80void CParameterPluginUI::on_cbEnableViewPassword_clicked(bool checked)
81{
82 ui->pbEncryptKey->setEnabled(checked);
83}
84
85void CParameterPluginUI::on_pbEncryptKey_clicked()
86{
87 switch(ui->leEncryptKey->echoMode())
88 {
89 case QLineEdit::Password:
90 ui->leEncryptKey->setEchoMode(QLineEdit::Normal);
91 ui->pbEncryptKey->setIcon(QIcon::fromTheme("eye-off"));
92 break;
93 case QLineEdit::Normal:
94 ui->leEncryptKey->setEchoMode(QLineEdit::Password);
95 ui->pbEncryptKey->setIcon(QIcon::fromTheme("eye-on"));
96 break;
97 default:
98 break;
99 }
100}
101
103{
104 m_pPara = qobject_cast<CParameterPlugin*>(pParameter);
105 if(!m_pPara)
106 return -1;
107 ui->gbCaptureAllKeyboard->setChecked(m_pPara->GetCaptureAllKeyboard());
108 ui->gpDesktopShortcutsSctipt->setEnabled(ui->gbCaptureAllKeyboard->isChecked());
109 ui->gpDesktopShortcutsSctipt->setChecked(m_pPara->GetDesktopShortcutsScript());
110 ui->leDesktopShortcutsDisableScript->setText(m_pPara->GetDisableDesktopShortcutsScript());
111 ui->leDesktopShortcutsRestoreScript->setText(m_pPara->GetRestoreDesktopShortcutsScript());
112 ui->cbEnableLocalInputMethod->setChecked(m_pPara->GetEnableLocalInputMethod());
113 ui->cbPromptAdminPrivilege->setChecked(
114 m_pPara->GetPromptAdministratorPrivilege());
115 ui->cbEnableUserName->setChecked(m_pPara->GetEnableSystemUserToUser());
116 ui->cbViewZoom->addItem(QIcon::fromTheme("zoom-original"),
117 tr("Original"),
119 /*ui->cbViewZoom->addItem(tr("Original Center"),
120 (int)CFrmViewer::ADAPT_WINDOWS::OriginalCenter);*/
121 ui->cbViewZoom->addItem(QIcon::fromTheme("zoom"), tr("Zoom"),
123 ui->cbViewZoom->addItem(QIcon::fromTheme("zoom-fit-best"),
124 tr("Zoom to window"),
126 ui->cbViewZoom->addItem(QIcon::fromTheme("zoom-aspect-ratio"),
127 tr("Keep aspect ratio to window"),
129 int nIndex = ui->cbViewZoom->findData((int)m_pPara->GetAdaptWindows());
130 if(-1 != nIndex)
131 ui->cbViewZoom->setCurrentIndex(nIndex);
132
133#if HAVE_QTKEYCHAIN
134 ui->cbSystemCredential->setChecked(m_pPara->GetUseSystemCredential());
135#else
136 ui->cbSystemCredential->hide();
137#endif
138 ui->leEncryptKey->setText(m_pPara->GetEncryptKey());
139 ui->cbSavePassword->setChecked(m_pPara->GetSavePassword());
140 ui->cbEnableViewPassword->setChecked(m_pPara->GetViewPassowrd());
141 ui->pbEncryptKey->setEnabled(ui->cbEnableViewPassword->isChecked());
142 switch (m_pPara->GetPromptType()) {
143 case CParameterPlugin::PromptType::First:
144 ui->rbPromptFirst->setChecked(true);
145 break;
146 case CParameterPlugin::PromptType::No:
147 ui->rbPromptNo->setChecked(true);
148 break;
149 }
150
151 ui->cbShowProtocol->setChecked(
152 m_pPara->GetNameStyles() & CParameterPlugin::NameStyle::Protocol);
153 ui->cbShowServerName->setChecked(
154 m_pPara->GetNameStyles() & CParameterPlugin::NameStyle::ServerName);
155 ui->cbShowSecurityLevel->setChecked(
156 m_pPara->GetNameStyles() & CParameterPlugin::NameStyle::SecurityLevel);
157
158 return 0;
159}
160
161void CParameterPluginUI::on_cbSystemCredential_checkStateChanged(const Qt::CheckState &state)
162{
163 ui->gpEncryptKey->setEnabled(Qt::Unchecked == state);
164}
165
166void CParameterPluginUI::on_pbDesktopShortcutsDisable_clicked()
167{
168 QString szDir = ui->leDesktopShortcutsDisableScript->text();
169 if(szDir.isEmpty())
170 szDir = RabbitCommon::CDir::Instance()->GetDirData() + QDir::separator() + "Script";
171 QString szFile = QFileDialog::getOpenFileName(
172 nullptr, tr("Open disable desktop shortcuts script"), szDir);
173 if(szFile.isEmpty()) return;
174 ui->leDesktopShortcutsDisableScript->setText(szFile);
175}
176
177void CParameterPluginUI::on_pbDesktopShortcutsRestore_clicked()
178{
179 QString szDir = ui->leDesktopShortcutsRestoreScript->text();
180 if(szDir.isEmpty())
181 szDir = RabbitCommon::CDir::Instance()->GetDirData() + QDir::separator() + "Script";
182 QString szFile = QFileDialog::getOpenFileName(
183 nullptr, tr("Open restore desktop shortcuts script"), szDir);
184 if(szFile.isEmpty()) return;
185 ui->leDesktopShortcutsRestoreScript->setText(szFile);
186}
187
188void CParameterPluginUI::on_cbCaptureAllKeyboard_checkStateChanged(const Qt::CheckState &arg1)
189{
190 ui->gpDesktopShortcutsSctipt->setEnabled(Qt::CheckState::Checked == arg1);
191}
ADAPT_WINDOWS
窗口适配枚举常量
Definition FrmViewer.h:60
@ Original
原始桌面大小,桌面的左上点与窗口的左上点对齐
@ Zoom
缩放窗口大小等于桌面大小 * 系数
@ KeepAspectRationToWindow
保持长宽比缩放到窗口大小,窗口是固定的
@ ZoomToWindow
桌面缩放到窗口大小,窗口是固定的
virtual bool CheckValidity(bool validity) override
检查参数的有效性
virtual int SetParameter(CParameter *pParameter) override
[override functions]
virtual int Accept() override
接受参数。如果需要,可先调用 CheckValidity
参数界面接口
Definition ParameterUI.h:15
参数接口
Definition Parameter.h:218