3#include <QWhatsThisClickedEvent>
4#include <QDesktopServices>
7#include <QLoggingCategory>
8#include "ParameterGlobal.h"
9#include "ParameterPluginUI.h"
10#include "ui_ParameterPluginUI.h"
11#include "RabbitCommonTools.h"
12#include "RabbitCommonDir.h"
14static Q_LOGGING_CATEGORY(log,
"Parameter.Plugin.UI")
22 setWindowTitle(tr(
"Plugin"));
23 if(RabbitCommon::CTools::HasAdministratorPrivilege()) {
24 ui->cbPromptAdminPrivilege->setText(
"");
25 ui->cbPromptAdminPrivilege->hide();
27 ui->cbPromptAdminPrivilege->setText(
28 tr(
"Prompt administrator privilege"));
29 ui->cbPromptAdminPrivilege->show();
32 ui->pbEncryptKey->setToolTip(tr(
"Enable view password"));
34 QString szPasswordUrl;
35 szPasswordUrl =
"<a href=https://github.com/KangLin/RabbitRemoteControl/wiki/UserManual#password-security>" + tr(
"Password Security") +
"</a>";
36 ui->gbPassword->setWhatsThis(szPasswordUrl);
37 ui->gbPassword->installEventFilter(
this);
38 ui->pbEncryptKey->setWhatsThis(szPasswordUrl);
39 ui->pbEncryptKey->installEventFilter(
this);
40 ui->cbSystemCredential->setWhatsThis(szPasswordUrl);
41 ui->cbSystemCredential->installEventFilter(
this);
42 ui->leEncryptKey->setWhatsThis(szPasswordUrl);
43 ui->leEncryptKey->installEventFilter(
this);
44 ui->gpEncryptKey->setWhatsThis(szPasswordUrl);
45 ui->gpEncryptKey->installEventFilter(
this);
48CParameterPluginUI::~CParameterPluginUI()
55 if(!validity)
return true;
65 m_pPara->SetCaptureAllKeyboard(ui->gbCaptureAllKeyboard->isChecked());
66 m_pPara->SetDesktopShortcutsScript(ui->gpDesktopShortcutsSctipt->isChecked());
67 m_pPara->SetDisableDesktopShortcutsScript(ui->leDesktopShortcutsDisableScript->text());
68 m_pPara->SetRestoreDesktopShortcutsScript(ui->leDesktopShortcutsRestoreScript->text());
69 m_pPara->SetEnableLocalInputMethod(ui->cbEnableLocalInputMethod->isChecked());
70 m_pPara->SetPromptAdministratorPrivilege(
71 ui->cbPromptAdminPrivilege->isChecked());
72 m_pPara->SetEnableSystemUserToUser(ui->cbEnableUserName->isChecked());
73 m_pPara->SetAdaptWindows(
76 m_pPara->SetUseSystemCredential(ui->cbSystemCredential->isChecked());
77 m_pPara->SetEncryptKey(ui->leEncryptKey->text());
78 m_pPara->SetSavePassword(ui->cbSavePassword->isChecked());
79 m_pPara->SetViewPassowrd(ui->cbEnableViewPassword->isChecked());
80 if(ui->rbPromptFirst->isChecked())
81 m_pPara->SetPromptType(CParameterPlugin::PromptType::First);
82 if(ui->rbPromptNo->isChecked())
83 m_pPara->SetPromptType(CParameterPlugin::PromptType::No);
85 CParameterPlugin::NameStyles nameStyle;
86 if(ui->cbShowProtocol->isChecked())
87 nameStyle |= CParameterPlugin::NameStyle::Protocol;
88 if(ui->cbShowServerName->isChecked())
89 nameStyle |= CParameterPlugin::NameStyle::ServerName;
90 if(ui->cbShowSecurityLevel->isChecked())
91 nameStyle |= CParameterPlugin::NameStyle::SecurityLevel;
92 m_pPara->SetNameStyles(nameStyle);
97void CParameterPluginUI::on_cbEnableViewPassword_clicked(
bool checked)
99 ui->pbEncryptKey->setEnabled(checked);
102void CParameterPluginUI::on_pbEncryptKey_clicked()
104 switch(ui->leEncryptKey->echoMode())
106 case QLineEdit::Password:
107 ui->leEncryptKey->setEchoMode(QLineEdit::Normal);
108 ui->pbEncryptKey->setIcon(QIcon::fromTheme(
"eye-off"));
110 case QLineEdit::Normal:
111 ui->leEncryptKey->setEchoMode(QLineEdit::Password);
112 ui->pbEncryptKey->setIcon(QIcon::fromTheme(
"eye-on"));
121 m_pPara = qobject_cast<CParameterPlugin*>(pParameter);
124 ui->gbCaptureAllKeyboard->setChecked(m_pPara->GetCaptureAllKeyboard());
125 ui->gpDesktopShortcutsSctipt->setEnabled(ui->gbCaptureAllKeyboard->isChecked());
126 ui->gpDesktopShortcutsSctipt->setChecked(m_pPara->GetDesktopShortcutsScript());
127 ui->leDesktopShortcutsDisableScript->setText(m_pPara->GetDisableDesktopShortcutsScript());
128 ui->leDesktopShortcutsRestoreScript->setText(m_pPara->GetRestoreDesktopShortcutsScript());
129 ui->cbEnableLocalInputMethod->setChecked(m_pPara->GetEnableLocalInputMethod());
130 ui->cbPromptAdminPrivilege->setChecked(
131 m_pPara->GetPromptAdministratorPrivilege());
132 ui->cbEnableUserName->setChecked(m_pPara->GetEnableSystemUserToUser());
133 ui->cbViewZoom->addItem(QIcon::fromTheme(
"zoom-original"),
138 ui->cbViewZoom->addItem(QIcon::fromTheme(
"zoom"), tr(
"Zoom"),
140 ui->cbViewZoom->addItem(QIcon::fromTheme(
"zoom-fit-best"),
141 tr(
"Zoom to window"),
143 ui->cbViewZoom->addItem(QIcon::fromTheme(
"zoom-aspect-ratio"),
144 tr(
"Keep aspect ratio to window"),
146 int nIndex = ui->cbViewZoom->findData((
int)m_pPara->GetAdaptWindows());
148 ui->cbViewZoom->setCurrentIndex(nIndex);
151 ui->cbSystemCredential->setChecked(m_pPara->GetUseSystemCredential());
153 ui->cbSystemCredential->hide();
155 ui->leEncryptKey->setText(m_pPara->GetEncryptKey());
156 ui->cbSavePassword->setChecked(m_pPara->GetSavePassword());
158 ui->cbEnableViewPassword->setChecked(m_pPara->GetViewPassowrd());
159 ui->pbEncryptKey->setEnabled(ui->cbEnableViewPassword->isChecked());
160 switch (m_pPara->GetPromptType()) {
161 case CParameterPlugin::PromptType::First:
162 ui->rbPromptFirst->setChecked(
true);
164 case CParameterPlugin::PromptType::No:
165 ui->rbPromptNo->setChecked(
true);
169 ui->cbShowProtocol->setChecked(
170 m_pPara->GetNameStyles() & CParameterPlugin::NameStyle::Protocol);
171 ui->cbShowServerName->setChecked(
172 m_pPara->GetNameStyles() & CParameterPlugin::NameStyle::ServerName);
173 ui->cbShowSecurityLevel->setChecked(
174 m_pPara->GetNameStyles() & CParameterPlugin::NameStyle::SecurityLevel);
179void CParameterPluginUI::on_cbSystemCredential_checkStateChanged(
const Qt::CheckState &state)
181 ui->gpEncryptKey->setEnabled(Qt::Unchecked == state);
184void CParameterPluginUI::on_pbDesktopShortcutsDisable_clicked()
186 QString szDir = ui->leDesktopShortcutsDisableScript->text();
188 szDir = RabbitCommon::CDir::Instance()->GetDirData() + QDir::separator() +
"Script";
189 QString szFile = QFileDialog::getOpenFileName(
190 nullptr, tr(
"Open disable desktop shortcuts script"), szDir);
191 if(szFile.isEmpty())
return;
192 ui->leDesktopShortcutsDisableScript->setText(szFile);
195void CParameterPluginUI::on_pbDesktopShortcutsRestore_clicked()
197 QString szDir = ui->leDesktopShortcutsRestoreScript->text();
199 szDir = RabbitCommon::CDir::Instance()->GetDirData() + QDir::separator() +
"Script";
200 QString szFile = QFileDialog::getOpenFileName(
201 nullptr, tr(
"Open restore desktop shortcuts script"), szDir);
202 if(szFile.isEmpty())
return;
203 ui->leDesktopShortcutsRestoreScript->setText(szFile);
206void CParameterPluginUI::on_cbCaptureAllKeyboard_checkStateChanged(
const Qt::CheckState &arg1)
208 ui->gpDesktopShortcutsSctipt->setEnabled(Qt::CheckState::Checked == arg1);
211bool CParameterPluginUI::eventFilter(QObject *watched, QEvent *event)
213 if(event->type() == QEvent::WhatsThisClicked) {
214 QWhatsThisClickedEvent* e = (QWhatsThisClickedEvent*)event;
216 qDebug(log) << e->href();
217 return QDesktopServices::openUrl(e->href());
220 return QWidget::eventFilter(watched, event);
ADAPT_WINDOWS
The ADAPT_WINDOWS enum.
@ Original
Original desktop size, the left-top of the desktop is aligned with the left-top of the window.
@ Zoom
zoom windows = desktop size * factor
@ KeepAspectRationToWindow
Keep desktop aspectration adapt to windows.
@ ZoomToWindow
Desktop adapt to windows.
virtual bool CheckValidity(bool validity) override
Check parameters validity.
virtual int SetParameter(CParameter *pParameter) override
[override functions]
virtual int Accept() override
Accept parameters.
The parameter UI interface.