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