fix(ukui-control-center): fix shortcut update

Description: issue=I8IJTZ【系统快捷键】【需求 21093】锁屏的快捷键修改回win+l时弹出冲突提示

Log: issue=I8IJTZ【系统快捷键】【需求 21093】锁屏的快捷键修改回win+l时弹出冲突提示
This commit is contained in:
zhoubin 2024-03-08 09:35:44 +08:00
parent 16a3e2961e
commit 88770a3a45
40 changed files with 19789 additions and 12057 deletions

BIN
data/en_US/image/17.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
data/en_US/image/18.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@ -246,11 +246,11 @@ As shown in Fig 20.
### Theme
- Theme Mode:
![Fig 21-1 Theme mode](image/17.png)
![Fig 21-1 Theme mode](image/17.jpg)
- Icon theme and cursor theme:
- Icon theme :
![Fig 21-2 Icon&cursor theme](image/18.png)
![Fig 21-2 Icon&cursor theme](image/18.jpg)
- Effect settings (some machines do not support this function):

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

BIN
data/zh_CN/image/theme.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 KiB

After

Width:  |  Height:  |  Size: 262 KiB

View File

@ -475,19 +475,19 @@ Kylin-OS与Kylin-OS连接过程
- 主题模式:
![图 25-1 主题模式](image/theme.png)
![图 25-1 主题模式](image/theme.jpg)
- 窗口外观:
![图 25-2 窗口外观](image/appearance.png)
- 图标主题和光标主题:
- 图标主题和光标主题wayland环境不支持光标主题
![图 25-3 图标&光标主题](image/theme-cursor.png)
- 窗口特效(部分机型不支持):
![图 25-4 窗口特效](image/theme-effect.png)
![图 25-4 窗口特效](image/theme-effect.jpg)
- 相关设置:

View File

@ -110,7 +110,7 @@ void AddButton::paintEvent(QPaintEvent *event)
QPainterPath AddButton::getPaintrPath()
{
const QRect rect = this->rect();
int radius = RADIUS_VALUE;
int radius = this->property("normalRadius").toInt();
int corner = 0;
if (m_radiusType == UkccFrame::BorderRadiusStyle::None) {

View File

@ -64,19 +64,20 @@ void UkccFrame::paintEvent(QPaintEvent *e)
painter.setPen(Qt::transparent);
QRect rect = this->rect();
int normalRadius = this->property("normalRadius").toInt();
if (mRadiusType == UkccFrame::None) {
painter.drawRoundedRect(rect, 0, 0);
} else {
QPainterPath painterPath;
painterPath.addRoundedRect(rect, RADIUS_VALUE, RADIUS_VALUE);
painterPath.addRoundedRect(rect, normalRadius, normalRadius);
painterPath.setFillRule(Qt::WindingFill);
if (mRadiusType == UkccFrame::Bottom) {
painterPath.addRect(rect.width() - RADIUS_VALUE, 0, RADIUS_VALUE, RADIUS_VALUE);
painterPath.addRect(0, 0, RADIUS_VALUE, RADIUS_VALUE);
painterPath.addRect(rect.width() - normalRadius, 0, normalRadius, normalRadius);
painterPath.addRect(0, 0, normalRadius, normalRadius);
} else if (mRadiusType == UkccFrame::Top) {
painterPath.addRect(0, rect.height() - RADIUS_VALUE, RADIUS_VALUE, RADIUS_VALUE);
painterPath.addRect(rect.width() - RADIUS_VALUE, rect.height() - RADIUS_VALUE, RADIUS_VALUE, RADIUS_VALUE);
painterPath.addRect(0, rect.height() - normalRadius, normalRadius, normalRadius);
painterPath.addRect(rect.width() - normalRadius, rect.height() - normalRadius, normalRadius, normalRadius);
}
painter.drawPath(painterPath);
}

View File

@ -30,7 +30,7 @@ using namespace ukcc;
#define FACEPATH "/usr/share/ukui/faces/"
ChangeUserLogo::ChangeUserLogo(QString n, QWidget *parent) :
ChangeUserLogo::ChangeUserLogo(QString n, QString userIcon, QWidget *parent) :
QDialog(parent),
name(n)
{
@ -38,7 +38,7 @@ ChangeUserLogo::ChangeUserLogo(QString n, QWidget *parent) :
logosBtnGroup = new QButtonGroup;
selected = QString();
selected = userIcon;
loadSystemLogo();
initUI();
@ -49,8 +49,8 @@ ChangeUserLogo::~ChangeUserLogo()
{
}
void ChangeUserLogo::loadSystemLogo(){
void ChangeUserLogo::loadSystemLogo()
{
logosFlowLayout = new FlowLayout(0, 8, 8);
logosFlowLayout->setContentsMargins(0, 0, 0, 0);
@ -80,13 +80,17 @@ void ChangeUserLogo::loadSystemLogo(){
button->setCheckable(true);
button->setAttribute(Qt::WA_DeleteOnClose);
button->setFixedSize(QSize(64, 64));
button->setProperty("isRoundButton", true);
button->setFocusPolicy(Qt::NoFocus);
logosBtnGroup->addButton(button);
button->setIcon(QIcon(fullface));
button->setIconSize(QSize(59,59));
ElipseMaskWidget * currentElipseMaskWidget = new ElipseMaskWidget(button);
currentElipseMaskWidget->setGeometry(0, 0, button->width(), button->height());
if (selected.compare(fullface,Qt::CaseSensitive) == 0) {
button->setChecked(true);
}
connect(button, &QPushButton::clicked, [=]{
// show dialog更新头像
@ -142,6 +146,7 @@ void ChangeUserLogo::initUI()
culMoreLogoBtn = new QPushButton;
culMoreLogoBtn->setText(tr("Select Local Logo"));
culMoreLogoBtn->setFocusPolicy(Qt::NoFocus);
culMoreLogoHorLayout = new QHBoxLayout;
culMoreLogoHorLayout->setSpacing(0);
@ -151,8 +156,10 @@ void ChangeUserLogo::initUI()
culCancelBtn = new QPushButton;
culCancelBtn->setText(tr("Cancel"));
culCancelBtn->setFocusPolicy(Qt::NoFocus);
culConfirmBtn = new QPushButton;
culConfirmBtn->setText(tr("Confirm"));
culConfirmBtn->setFocusPolicy(Qt::NoFocus);
culBottomBtnsHorLayout = new QHBoxLayout;
culBottomBtnsHorLayout->setSpacing(16);
@ -213,11 +220,13 @@ QPixmap ChangeUserLogo::makeRoundLogo(QString logo, int wsize, int hsize, int ra
return pixmap;
}
void ChangeUserLogo::refreshUserLogo(QString logo){
void ChangeUserLogo::refreshUserLogo(QString logo)
{
culLogoLabel->setPixmap(makeRoundLogo(logo, culLogoLabel->width(), culLogoLabel->height(), culLogoLabel->width()/2));
}
void ChangeUserLogo::requireUserInfo(QString logo, QString type){
void ChangeUserLogo::requireUserInfo(QString logo, QString type)
{
//设置头像
refreshUserLogo(logo);
@ -247,7 +256,8 @@ void ChangeUserLogo::setupConnect(){
});
}
void ChangeUserLogo::showLocalFaceDialog(){
void ChangeUserLogo::showLocalFaceDialog()
{
QString filters = "Face files(*.jpg *.jpeg *.png *.svg *.gif)";
QFileDialog fd(this);

View File

@ -20,7 +20,7 @@ class ChangeUserLogo : public QDialog
Q_OBJECT
public:
explicit ChangeUserLogo(QString n, QWidget *parent = nullptr);
explicit ChangeUserLogo(QString n, QString userIcon, QWidget *parent = nullptr);
~ChangeUserLogo();
public:

View File

@ -197,9 +197,8 @@ void ChangeUserType::requireUserInfo(QString logo, QString nname, int id, QStrin
//设置头像
cutUserLogoBtn->setIcon(QIcon(logo));
////圆形头像
ElipseMaskWidget * currentElipseMaskWidget = new ElipseMaskWidget(cutUserLogoBtn);
currentElipseMaskWidget->setGeometry(0, 0, cutUserLogoBtn->width(), cutUserLogoBtn->height());
//圆形头像
cutUserLogoBtn->setProperty("isRoundButton", true);
//设置昵称
if (setTextDynamic(cutNickNameLabel, nname)){

View File

@ -361,9 +361,8 @@ void UserInfo::buildAndSetupUsers(){
//设置用户头像
QPixmap iconfile = makeRoundLogo(user.iconfile, currentUserlogoBtn->width(), currentUserlogoBtn->height(), currentUserlogoBtn->width()/2);
currentUserlogoBtn->setIcon(iconfile);
////圆形头像
ElipseMaskWidget * currentElipseMaskWidget = new ElipseMaskWidget(currentUserlogoBtn);
currentElipseMaskWidget->setGeometry(0, 0, currentUserlogoBtn->width(), currentUserlogoBtn->height());
//圆形头像
currentUserlogoBtn->setProperty("isRoundButton", true);
//设置用户昵称
if (setTextDynamic(currentNickNameLabel, user.realname)){
@ -554,7 +553,7 @@ void UserInfo::showCreateUserNewDialog(){
CreateUserNew *dialog = new CreateUserNew(usersStringList, pluginWidget2);
connect(dialog, &CreateUserNew::confirmCreated, this, [=](QString name, QString fullname, int accounttype, QString pwd){
userSettingDbus->call("createUser", name, fullname, accounttype, DEFAULTFACE, pwd);
userSettingDbus->asyncCall("createUser", name, fullname, accounttype, DEFAULTFACE, pwd);
});
dialog->exec();
}
@ -609,7 +608,7 @@ void UserInfo::showChangeUserLogoDialog(QString pName, UtilsForUserinfo *utilsUs
{
if (allUserInfoMap.keys().contains(pName)){
UserInfomation user = allUserInfoMap.value(pName);
ChangeUserLogo *dialog = new ChangeUserLogo(user.realname, pluginWidget2);
ChangeUserLogo *dialog = new ChangeUserLogo(user.realname, user.iconfile, pluginWidget2);
dialog->setAttribute(Qt::WA_DeleteOnClose);
qDebug() << user.iconfile << ";" << __LINE__;
dialog->requireUserInfo(user.iconfile, _accountTypeIntToString(user.accounttype));

View File

@ -66,9 +66,7 @@ UtilsForUserinfo::UtilsForUserinfo(QObject *parent) : QObject(parent)
UkccFrame * UtilsForUserinfo::buildItemForUsers(){
//圆形头像遮罩
ElipseMaskWidget * currentElipseMaskWidget = new ElipseMaskWidget(logoBtn);
currentElipseMaskWidget->setGeometry(0, 0, logoBtn->width(), logoBtn->height());
logoBtn->setProperty("isRoundButton", true);
subUserInfoVerLayout = new QVBoxLayout();
subUserInfoVerLayout->setSpacing(0);

View File

@ -93,7 +93,7 @@ private:
AutoBoot::AutoBoot() : mFirstLoad(true)
{
pluginName = tr("Auto Boot");
pluginName = tr("Auto Start");
pluginType = APPLICATION;
}
@ -143,7 +143,7 @@ QWidget *AutoBoot::pluginUi()
const QString AutoBoot::name() const
{
return QStringLiteral("Autoboot");
return QStringLiteral("Autostart");
}
bool AutoBoot::isShowOnHomePage() const

View File

@ -13,8 +13,8 @@ void AutoBootUi::initUi()
vLyt->setContentsMargins(0, 0, 0, 0);
TitleLabel *mTitleLabel = new TitleLabel(this);
//~ contents_path /Autoboot/Autoboot Settings
mTitleLabel->setText(tr("Autoboot Settings"));
//~ contents_path /Autostart/Autostart Settings
mTitleLabel->setText(tr("Autostart Settings"));
mAutobootWidget = new SettingGroup(this);
@ -23,7 +23,7 @@ void AutoBootUi::initUi()
QHBoxLayout *Lyt = new QHBoxLayout(mAddWidget);
Lyt->setContentsMargins(0, 0, 0, 0);
mAddBtn = new AddButton(mAddWidget);
//~ contents_path /autoboot/Add
//~ contents_path /Autostart/Add
Lyt->addWidget(mAddBtn);
vLyt->addWidget(mTitleLabel);

View File

@ -213,8 +213,8 @@ void Printer::refreshPrinterDevSlot()
void Printer::runExternalApp()
{
UkccCommon::buriedSettings(name(), "open system-config-printer", QString("clicked"));
if (UkccCommon::isTablet() || UkccCommon::isWayland()) {
UkccCommon::buriedSettings(name(), "open kylin-printer", QString("clicked"));
if (UkccCommon::isTablet()) {
QDBusInterface ifc("com.kylin.AppManager",
"/com/kylin/AppManager",
"com.kylin.AppManager",

View File

@ -276,8 +276,13 @@ bool ShortcutLine::conflictWithGlobalShortcuts(const QKeySequence &keySequence)
if (clashing.isEmpty()) {
return false;
} else {
qDebug() << "conflict With Global Shortcuts" << clashing[keySequence][0].friendlyName();;
conflictValue = clashing[keySequence][0].friendlyName();
qDebug() << Q_FUNC_INFO << "conflict With Global Shortcuts key" << keySequence;
if (clashing[keySequence].empty()) {
conflictValue = "";
} else {
conflictValue = clashing[keySequence][0].friendlyName();
qDebug() << Q_FUNC_INFO << "conflict With Global Shortcuts" << conflictValue;
}
conflictKey = keySequence.toString();
}

View File

@ -158,7 +158,7 @@ void ShortcutUi::addSystemShortcut(const QString &name, const QString &shortcut,
twiceValues = shortcut.split("or");
value = twiceValues.at(1);
bingdingLineEditTwice = new DoubleClickShortCut(systemEntryList, customEntryList);
bingdingLineEditTwice = new DoubleClickShortCut(&mSystemEntryList, customEntryList);
bingdingLineEditTwice->setAttribute(Qt::WA_InputMethodEnabled, false);
bingdingLabelTwice = new ClickFixLabel(shortCutFrame);
bingdingLabelTwice->setStyleSheet("QLabel{background-color:palette(button);border-radius: 4px}");
@ -389,7 +389,7 @@ void ShortcutUi::addCustomShortcut(KeyEntry keyEntry, KeyEntryList *systemEntryL
QHBoxLayout *layout = new QHBoxLayout(frame);
QHBoxLayout *lineEditLayout = new QHBoxLayout;
DoubleClickLineEdit *nameLineEdit = new DoubleClickLineEdit(customEntryList, frame);
DoubleClickShortCut *bingdingLineEdit = new DoubleClickShortCut(&mSystemEntryList, &mCustomEntryList);
DoubleClickShortCut *bingdingLineEdit = new DoubleClickShortCut(&mSystemEntryList, customEntryList);
ClickFixLabel *nameLabel = new ClickFixLabel(frame);
ClickFixLabel *bingdingLabel = new ClickFixLabel(frame);
KeyEntry *mKeyEntry = new KeyEntry;
@ -414,8 +414,8 @@ void ShortcutUi::addCustomShortcut(KeyEntry keyEntry, KeyEntryList *systemEntryL
nameLineEdit->setFixedHeight(36);
bingdingLineEdit->setFixedSize(130,36);
bingdingLineEdit->setAlignment(Qt::AlignRight);
bingdingLabel->setAlignment(Qt::AlignRight | Qt::AlignCenter);
bingdingLineEdit->setAlignment(Qt::AlignLeft);
bingdingLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
bingdingLineEdit->setAttribute(Qt::WA_InputMethodEnabled, false);
bingdingLabel->setFixedSize(130, 36);
bingdingLabel->setStyleSheet("QLabel{background-color:palette(button);border-radius: 4px}");

View File

@ -448,7 +448,10 @@ void Theme::initControlTheme()
const QString& value = radioBtn->property("key").toString();
qtSettings->set(COLOR_QT_KEY, value);
revokeGlobalThemeSlot("getQtAccentRole", value);
qApp->setStyle(new InternalStyle("ukui"));
//大屏版本控制面板自己设置强调色需要延迟才能防卡死bug#183191
QTimer::singleShot(800, this,[=](){
qApp->setStyle(new InternalStyle("ukui"));
});
UkccCommon::buriedSettings(name(), "set accent color", QString("settings"), value);
});
it++;
@ -632,6 +635,7 @@ void Theme::initConnection()
revokeGlobalThemeSlot("getSupportBlur", "true");
changeEffectSlot(checked);
personliseGsettings->set(PERSONALSIE_EFFECT_KEY, checked);
revokeGlobalThemeSlot("getTransparencyBlur", checked ? QString::number(save_trans) : "100");
revokeGlobalThemeSlot("getSupportTransparency", "true");
@ -705,10 +709,14 @@ void Theme::initConnection()
if (key == "effect") {
if (UkccCommon::isOpenkylin())
qApp->setStyle(new InternalStyle("ukui"));
bool effectEnabled = personliseGsettings->get("effect").toBool();
mEffectWidget->blockSignals(true);
mEffectWidget->setChecked(effectEnabled);
mEffectWidget->blockSignals(false);
bool effectEnabled = personliseGsettings->get(PERSONALSIE_EFFECT_KEY).toBool();
bool effectBtnStatus = mEffectWidget->isChecked();
if (effectEnabled != effectBtnStatus) {
changeEffectSlot(effectEnabled);
mEffectWidget->blockSignals(true);
mEffectWidget->setChecked(effectEnabled);
mEffectWidget->blockSignals(false);
}
}
});

View File

@ -662,9 +662,9 @@ void About::compareTime(QString date)
int year;
int mouth;
int day;
if (s1.isNull()) { //未连接上网络, 和系统时间作对比
if (s1.isEmpty()) { //未连接上网络, 和系统时间作对比
QString currenttime = QDateTime::currentDateTime().toString("yyyy-MM-dd");
qDebug()<<currenttime;
qDebug() << currenttime;
list_1 = currenttime.split("-");
year = QString(list_1.at(0)).toInt();
mouth = QString(list_1.at(1)).toInt();

View File

@ -241,11 +241,13 @@ void QMLScreen::setScreenCenterPos()
moveY = mY2 - mY1;
Q_FOREACH (QMLOutput *qmlOutput, m_outputMap) {
if (qmlOutput->isVisible()) {
if (qmlOutput->output()->isConnected() && qmlOutput->isVisible()) {
qDebug() << Q_FUNC_INFO << " before set position " << qmlOutput->output()->name() << qmlOutput->position() << qmlOutput->size();
qmlOutput->blockSignals(true);
qmlOutput->setX(qmlOutput->x() + moveX);
qmlOutput->setY(qmlOutput->y() + moveY);
qmlOutput->blockSignals(false);
qDebug() << Q_FUNC_INFO << " after set position " << qmlOutput->output()->name() << qmlOutput->position() << qmlOutput->size();
}
}
}

View File

@ -113,6 +113,8 @@ TimeZoneChooser::TimeZoneChooser(QWidget *parent) : QDialog(parent)
// if ("Asia/Shanghai" == timezone) {
// continue;
// }
if (timezone.contains("UTC"))
continue;
completions << timezone;
QString localizedTimezone = m_zoneinfo->getLocalTimezoneName(timezone, locale);
completions << localizedTimezone;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

14144
shell/res/i18n/zh_HK.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -153,5 +153,6 @@
<file>i18n/ky.ts</file>
<file>i18n/ug.ts</file>
<file>i18n/bo_CN.ts</file>
<file>i18n/zh_HK.ts</file>
</qresource>
</RCC>

View File

@ -628,13 +628,10 @@ void SearchWidget::setLanguage(QString type) {
} else {
m_completer->setCompletionRole(Qt::DisplayRole);
}
QTimer::singleShot(1, this, [=]() {
QtConcurrent::run([=]() {
loadxml();
//记录搜索项总数
count = m_model->rowCount();
});
});
// QtConcurrent search dbus cannot get result. issue#I8W7WE
loadxml();
//记录搜索项总数
count = m_model->rowCount();
}
//save all modules moduleInteface name and actual moduleName

View File

@ -1,14 +1,15 @@
[Desktop Entry]
Name=Settings
Name[zh_CN]=设置
Name[zh_HK]=
Name[zh_TW]=
Name[zh_HK]=
Name[zh_TW]=
Name[bo_CN]=གསར་འཛུགས་
Name[mn_MN]=ᠪᠠᠶᠢᠷᠢᠯᠠᠭᠤᠯᠬᠤ
Name[tr]=Denetim Merkezi
Comment=UKUI控制面板
Comment[tr]=UKUI Kontrol Merkezi
Icon=ukui-control-center
Exec=/usr/bin/ukui-control-center
Exec=/usr/bin/ukui-control-center %U
Terminal=false
Type=Application
StartupNotify=true

View File

@ -31,6 +31,7 @@ TRANSLATIONS += \
shell/res/i18n/lzh.ts \
shell/res/i18n/mn.ts \
shell/res/i18n/zh_Hant.ts \
shell/res/i18n/zh_HK.ts \
# Automating generation .qm files from .ts files