!95 按照设计时要求:点击其他地方虚拟键盘不会自动隐藏 会话界面无法直接通过方向键操作,需要按一次tab,添加系统监视器按钮可键盘走焦 哈维柯语言下,登陆界面输入密码框未从右往左布局
Merge pull request !95 from liudunfa/openkylin/nile
This commit is contained in:
parent
8fe8a359a1
commit
0f5cc700be
|
@ -0,0 +1,210 @@
|
|||
From: =?utf-8?b?5YiY6L+c6bmP?=
|
||||
<11195448+liuyuanpeng176@user.noreply.gitee.com>
|
||||
Date: Fri, 26 Jul 2024 09:27:53 +0000
|
||||
Subject: =?utf-8?b?ITk1IOaMieeFp+iuvuiuoeaXtuimgeaxgu+8mueCueWHu+WFtuS7lg==?=
|
||||
=?utf-8?b?5Zyw5pa56Jma5ouf6ZSu55uY5LiN5Lya6Ieq5Yqo6ZqQ6JePIOS8muivneeVjA==?=
|
||||
=?utf-8?b?6Z2i5peg5rOV55u05o6l6YCa6L+H5pa55ZCR6ZSu5pON5L2c77yM6ZyA6KaB5oyJ?=
|
||||
=?utf-8?b?5LiA5qyhdGFi77yM5re75Yqg57O757uf55uR6KeG5Zmo5oyJ6ZKu5Y+v6ZSu55uY?=
|
||||
=?utf-8?b?6LWw54SmIOWTiOe7tOafr+ivreiogOS4i++8jOeZu+mZhueVjOmdoui+k+WFpQ==?=
|
||||
=?utf-8?b?5a+G56CB5qGG5pyq5LuO5Y+z5b6A5bem5biD5bGAIE1lcmdlIHB1bGwgcmVxdWVz?=
|
||||
=?utf-8?b?dCAhOTUgZnJvbSBsaXVkdW5mYS9vcGVua3lsaW4vbmlsZQ==?=
|
||||
|
||||
---
|
||||
src/widgets/authdialog.cpp | 12 ++++++++----
|
||||
src/widgets/iconedit.cpp | 20 ++++++++++++--------
|
||||
src/widgets/lockwidget.cpp | 16 ++++++++++------
|
||||
src/widgets/lockwidget.h | 2 +-
|
||||
src/widgets/statusbutton.cpp | 30 ++++++++++++++++++++++++++++++
|
||||
5 files changed, 61 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/src/widgets/authdialog.cpp b/src/widgets/authdialog.cpp
|
||||
index 8914379..228b16d 100644
|
||||
--- a/src/widgets/authdialog.cpp
|
||||
+++ b/src/widgets/authdialog.cpp
|
||||
@@ -910,8 +910,10 @@ void AuthDialog::onPamShowPrompt(QString strPrompt, int nType)
|
||||
m_passwordEdit->show();
|
||||
}
|
||||
|
||||
- m_passwordEdit->setFocus();
|
||||
- this->setFocusProxy(m_passwordEdit);
|
||||
+ if (m_passwordEdit->isVisible()) {
|
||||
+ m_passwordEdit->setFocus();
|
||||
+ this->setFocusProxy(m_passwordEdit);
|
||||
+ }
|
||||
if (nType != PamAuth::PromptTypeSecret) {
|
||||
m_isAutoSwitch = true;
|
||||
m_passwordEdit->setType(QLineEdit::Normal);
|
||||
@@ -1263,8 +1265,10 @@ bool AuthDialog::unlockUserTimer()
|
||||
if (m_passwordEdit) {
|
||||
m_passwordEdit->readOnly(false);
|
||||
m_passwordEdit->setLocked(false);
|
||||
- m_passwordEdit->setFocus();
|
||||
- this->setFocusProxy(m_passwordEdit);
|
||||
+ if (m_passwordEdit->isVisible()) {
|
||||
+ m_passwordEdit->setFocus();
|
||||
+ this->setFocusProxy(m_passwordEdit);
|
||||
+ }
|
||||
}
|
||||
// qDebug() << "清理 1 clearMessage";
|
||||
if (m_isLockingFlg) {
|
||||
diff --git a/src/widgets/iconedit.cpp b/src/widgets/iconedit.cpp
|
||||
index 78bdc1d..79efd64 100644
|
||||
--- a/src/widgets/iconedit.cpp
|
||||
+++ b/src/widgets/iconedit.cpp
|
||||
@@ -76,13 +76,13 @@ IconEdit::IconEdit(LockDialogModel *model, QWidget *parent) : QWidget(parent), m
|
||||
|
||||
connect(m_edit, &QLineEdit::returnPressed, this, &IconEdit::clicked_cb);
|
||||
connect(m_iconButton, &QPushButton::clicked, this, &IconEdit::clicked_cb);
|
||||
- connect(m_edit, &QLineEdit::textChanged, this, [=](QString text){
|
||||
- if (!text.isEmpty()) {
|
||||
- setLayoutDirection(Qt::LeftToRight);
|
||||
- } else if (systemLang == "ug_CN" || systemLang == "ky_KG" || systemLang == "kk_KZ") {
|
||||
- setLayoutDirection(Qt::RightToLeft);
|
||||
- }
|
||||
- });
|
||||
+// connect(m_edit, &QLineEdit::textChanged, this, [=](QString text){
|
||||
+// if (!text.isEmpty()) {
|
||||
+// setLayoutDirection(Qt::LeftToRight);
|
||||
+// } else if (systemLang == "ug_CN" || systemLang == "ky_KG" || systemLang == "kk_KZ") {
|
||||
+// setLayoutDirection(Qt::RightToLeft);
|
||||
+// }
|
||||
+// });
|
||||
|
||||
m_edit->setAttribute(Qt::WA_InputMethodEnabled, false); // 禁用输入法
|
||||
m_edit->setContextMenuPolicy(Qt::NoContextMenu); // 禁用右键菜单
|
||||
@@ -104,7 +104,11 @@ void IconEdit::resizeEvent(QResizeEvent *)
|
||||
{
|
||||
// 设置输入框中文件输入区,不让输入的文字在被隐藏在按钮下
|
||||
int w = m_iconButton->width() + m_modeButton->width();
|
||||
- m_edit->setTextMargins(1, 1, m_capsState ? w + m_capsIcon->width() + 10 : w + 6, 1);
|
||||
+ if (systemLang == "ug_CN" || systemLang == "ky_KG" || systemLang == "kk_KZ") {
|
||||
+ m_edit->setTextMargins(m_capsState ? w + m_capsIcon->width() + 10 : w + 6, 1, 1, 1);
|
||||
+ } else {
|
||||
+ m_edit->setTextMargins(1, 1, m_capsState ? w + m_capsIcon->width() + 10 : w + 6, 1);
|
||||
+ }
|
||||
m_edit->setFixedSize(size());
|
||||
}
|
||||
|
||||
diff --git a/src/widgets/lockwidget.cpp b/src/widgets/lockwidget.cpp
|
||||
index 139a9bb..9ab49a2 100644
|
||||
--- a/src/widgets/lockwidget.cpp
|
||||
+++ b/src/widgets/lockwidget.cpp
|
||||
@@ -94,7 +94,7 @@ bool LockWidget::eventFilter(QObject *obj, QEvent *event)
|
||||
|| (m_virtualKeyboardWidget && m_virtualKeyboardWidget == obj)) {
|
||||
return true;
|
||||
} else if (buttonListWidget && obj != buttonListWidget) {
|
||||
- exitSubWidget();
|
||||
+ exitSubWidget(false, false);
|
||||
}
|
||||
} else if (event->type() == QEvent::Show) {
|
||||
if (obj == this) {
|
||||
@@ -107,7 +107,7 @@ bool LockWidget::eventFilter(QObject *obj, QEvent *event)
|
||||
return false;
|
||||
}
|
||||
|
||||
-bool LockWidget::exitSubWidget(bool isForScreensaver)
|
||||
+bool LockWidget::exitSubWidget(bool isForScreensaver, bool hideVirkeyboard)
|
||||
{
|
||||
if (m_isSessionTools) {
|
||||
authDialog->setFocus();
|
||||
@@ -155,7 +155,7 @@ bool LockWidget::exitSubWidget(bool isForScreensaver)
|
||||
// sendNetPluginVisible(false);
|
||||
allExited = false;
|
||||
}
|
||||
- if (m_virtualKeyboardWidget && m_virtualKeyboardWidget->isVisible()) {
|
||||
+ if (hideVirkeyboard && m_virtualKeyboardWidget && m_virtualKeyboardWidget->isVisible()) {
|
||||
m_virtualKeyboardWidget->hide();
|
||||
m_virKbButton->setClickedStatus(NORMAL);
|
||||
allExited = false;
|
||||
@@ -269,6 +269,11 @@ void LockWidget::keyReleaseEvent(QKeyEvent *e)
|
||||
onShowVirtualKeyboard();
|
||||
}
|
||||
|
||||
+ if (e->key() == Qt::Key_Return && m_systemMonitorBtn->hasFocus()) {
|
||||
+ doSystemMonitor();
|
||||
+ exitSubWidget();
|
||||
+ }
|
||||
+
|
||||
// 监听按键事件实现快捷键功能
|
||||
switch (e->key()) {
|
||||
case Qt::Key_VolumeMute:
|
||||
@@ -423,7 +428,7 @@ void LockWidget::initPowerWidget()
|
||||
connect(m_powerListWidget, &PowerListWidget::suspendClicked, this, &LockWidget::onSuspendClicked);
|
||||
connect(m_powerListWidget, &PowerListWidget::itemClicked, this, &LockWidget::onPowerItemClicked);
|
||||
connect(m_powerListWidget, &PowerListWidget::switchuserClicked, this, &LockWidget::onSwitchuserClicked);
|
||||
- m_powerListWidget->clearFocus();
|
||||
+// m_powerListWidget->clearFocus();
|
||||
}
|
||||
|
||||
void LockWidget::initButtonWidget()
|
||||
@@ -1104,8 +1109,6 @@ void LockWidget::onShowPowerListWidget(bool issessionTools)
|
||||
if (m_powerListWidget->isHidden()) {
|
||||
m_powerListWidget->show();
|
||||
authDialog->hide();
|
||||
- m_powerListWidget->clearFocus();
|
||||
- buttonListWidget->clearFocus();
|
||||
if (m_powerListWidget->getScrollShowStatus()) { // 如果显示Scroll,直接从时间窗口底部开始显示
|
||||
m_powerListWidget->move((width() - m_powerListWidget->width()) / 2, m_timeWidget->height() + 30);
|
||||
} else { // 居中显示
|
||||
@@ -1116,6 +1119,7 @@ void LockWidget::onShowPowerListWidget(bool issessionTools)
|
||||
m_systemMonitorBtn->show();
|
||||
buttonListWidget->hide();
|
||||
}
|
||||
+ buttonListWidget->clearFocus();
|
||||
if (m_widgetMediaControl) {
|
||||
m_widgetMediaControl->hide();
|
||||
}
|
||||
diff --git a/src/widgets/lockwidget.h b/src/widgets/lockwidget.h
|
||||
index 2183db8..537d2ae 100644
|
||||
--- a/src/widgets/lockwidget.h
|
||||
+++ b/src/widgets/lockwidget.h
|
||||
@@ -51,7 +51,7 @@ class LockWidget : public QWidget
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit LockWidget(LockDialogModel *model, QWidget *parent = nullptr);
|
||||
- bool exitSubWidget(bool isForScreensaver = false);
|
||||
+ bool exitSubWidget(bool isForScreensaver = false, bool hideVirkeyboard = true);
|
||||
void stopAuth();
|
||||
void startAuth();
|
||||
void reloadRootBackground();
|
||||
diff --git a/src/widgets/statusbutton.cpp b/src/widgets/statusbutton.cpp
|
||||
index 82d6850..3a4f50d 100644
|
||||
--- a/src/widgets/statusbutton.cpp
|
||||
+++ b/src/widgets/statusbutton.cpp
|
||||
@@ -176,6 +176,36 @@ void StatusButton::paintEvent(QPaintEvent *e)
|
||||
painter.restore();
|
||||
}
|
||||
|
||||
+ if (option.state & QStyle::State_HasFocus) {
|
||||
+ painter.save();
|
||||
+ painter.setPen(Qt::NoPen);
|
||||
+ painter.setBrush(Qt::white);
|
||||
+ painter.setOpacity(0.25);
|
||||
+ switch (buttonType) {
|
||||
+ case NORMALBTN:
|
||||
+ painter.drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 24, 24);
|
||||
+ break;
|
||||
+ default:
|
||||
+ painter.drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 6, 6);
|
||||
+ break;
|
||||
+ }
|
||||
+ painter.restore();
|
||||
+ painter.save();
|
||||
+ QStyleOption opt;
|
||||
+ QColor color = opt.palette.color(QPalette::Highlight);
|
||||
+ painter.setPen(QPen(color, 2));
|
||||
+ painter.setBrush(Qt::NoBrush);
|
||||
+ switch (buttonType) {
|
||||
+ case NORMALBTN:
|
||||
+ painter.drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 24, 24);
|
||||
+ break;
|
||||
+ default:
|
||||
+ painter.drawRoundedRect(option.rect.adjusted(1, 1, -1, -1), 6, 6);
|
||||
+ break;
|
||||
+ }
|
||||
+ painter.restore();
|
||||
+ }
|
||||
+
|
||||
// 绘制文字
|
||||
if (buttonType == NORMALBTN && !text().isEmpty() && text() != "") {
|
||||
painter.setPen(QColor(255, 255, 255, 255));
|
|
@ -48,3 +48,4 @@
|
|||
0048-Added-translation-using-Weblate-Kyrgyz.patch
|
||||
0049-Translated-using-Weblate-Kyrgyz.patch
|
||||
0050-92-fixbug.patch
|
||||
0051-95-tab.patch
|
||||
|
|
Loading…
Reference in New Issue