fix: ukcc

* bug#173986【弹窗策略规范-走查】【设置】账户信息等模块弹窗需要支持按Esc关闭/退出弹窗
  * bug#173056【工具提示规范落地-走查】【设置】返回首页btn增加tooltips
  * bug#183361ukui-control-center KVE-2023-0703
  * bug#174849英文系统且字体最大号时,设置首页的全局搜索和系统启动二级模块前有3个空格
  * bug#174689英文系统下,开机启动和默认应用的单词间隔异常
This commit is contained in:
zhoubin 2023-08-02 14:50:45 +08:00
parent defedbf9a3
commit 00398c9c72
23 changed files with 531 additions and 398 deletions

View File

@ -197,8 +197,8 @@ void changeUserGroup::initUI()
mConfirmButton->setFixedSize(110, 40);
cancelAndConfirmHLayout->addStretch();
cancelAndConfirmHLayout->addWidget(mConfirmButton);
cancelAndConfirmHLayout->addWidget(mCancelButton);
cancelAndConfirmHLayout->addWidget(mConfirmButton);
mCancelAndConfirmFrame->setLayout(cancelAndConfirmHLayout);
vlayout->addLayout(hUserGrouplayout);
@ -369,36 +369,9 @@ void changeUserGroup::loadAllGroup()
}
connect(allUserGroupTableView,&QTableView::clicked,this,[=](const QModelIndex &index){
bool idSetEnable = true;
currentRow = index.row();
UkccCommon::buriedSettings(QString("Userinfo"), this->windowTitle(), QString("clicked"), groupList->at(currentRow)->groupname);
if (setTextDynamic(mUserGroupLineEdit, groupList->at(currentRow)->groupname)) {
mUserGroupLineEdit->setToolTip(groupList->at(currentRow)->groupname);
}
mUserGroupIdLineEdit->setText(groupList->at(currentRow)->groupid);
getUsersList(groupList->at(currentRow)->usergroup,groupList->at(currentRow)->groupname);
// 判断id是否可修改
for(int j = 0; j < passwdList->size(); j++){
_deleteable = true;
if(passwdList->at(j)->groupid == groupList->at(currentRow)->groupid){
_deleteable = false;
idSetEnable = false;
if (currentRow == 0) {
idSetEnabled(idSetEnable);
}
break;
}
}
mDelUserGroupButton->setEnabled(_deleteable);
idSetEnabled(idSetEnable);
_nameHasModified = false;
_idHasModified = false;
_boxModified = false;
refreshDetialPage();
UkccCommon::buriedSettings(QString("Userinfo"), this->windowTitle(), QString("clicked"), groupList->at(currentRow)->groupname);
});
// ui->listWidget->setSortingEnabled(true);
}
@ -552,6 +525,36 @@ bool changeUserGroup::polkitEdit()
}
}
void changeUserGroup::refreshDetialPage()
{
bool idSetEnable = true;
if (setTextDynamic(mUserGroupLineEdit, groupList->at(currentRow)->groupname)) {
mUserGroupLineEdit->setToolTip(groupList->at(currentRow)->groupname);
}
mUserGroupIdLineEdit->setText(groupList->at(currentRow)->groupid);
getUsersList(groupList->at(currentRow)->usergroup,groupList->at(currentRow)->groupname);
// 判断id是否可修改
for(int j = 0; j < passwdList->size(); j++){
_deleteable = true;
if(passwdList->at(j)->groupid == groupList->at(currentRow)->groupid){
_deleteable = false;
idSetEnable = false;
if (currentRow == 0) {
idSetEnabled(idSetEnable);
}
break;
}
}
mDelUserGroupButton->setEnabled(_deleteable);
idSetEnabled(idSetEnable);
_nameHasModified = false;
_idHasModified = false;
_boxModified = false;
}
// slots function
void changeUserGroup::addUserGroupSlot()
{
@ -581,18 +584,21 @@ void changeUserGroup::addUserGroupSlot()
}
QDBusReply<bool> reply = serviceInterface->call("add",lineName->text(),lineId->text());
if (reply.isValid()){
if (reply) {
// use the returned value
qDebug() << "get call value" << reply.value();
_addable = true;
refreshCertainBtnStatus();
refreshList();
allUserGroupTableView->scrollToBottom();
currentRow = mAllUserGroupModel->rowCount()-1;
allUserGroupTableView->selectRow(currentRow);
refreshDetialPage();
} else {
// call failed. Show an error condition.
qDebug() << "call failed" << reply.error();
}
refreshList();
allUserGroupTableView->scrollToBottom();
dialog->close();
});
dialog->exec();
@ -612,19 +618,22 @@ void changeUserGroup::delUserGroupSlot()
if (delUserGroupMessage->clickedButton() == confirmBtn) {
QDBusReply<bool> reply = serviceInterface->call("del", allUserGroupTableView->currentIndex().data().toString());
if (reply.isValid()){
if (reply){
// use the returned value
qDebug() << "current index" << allUserGroupTableView->currentIndex();
mAllUserGroupModel->removeRow(currentRow);
allUserGroupTableView->scrollTo(allUserGroupTableView->currentIndex());
allUserGroupTableView->scrollToBottom();
mDelUserGroupButton->setEnabled(false);
_deleted = true;
refreshCertainBtnStatus();
refreshList();
currentRow = currentRow-1;
allUserGroupTableView->selectRow(currentRow);
refreshDetialPage();
} else {
// call failed. Show an error condition.
qDebug() << "call failed" << reply.error();
}
refreshList();
}
}

View File

@ -146,6 +146,7 @@ private:
void idSetEnabled(bool idSetEnable);
void refreshList();
bool setTextDynamic(QLineEdit *lineEdit, QString string);
void refreshDetialPage();
void addUserGroupSlot();
void delUserGroupSlot();

View File

@ -76,7 +76,8 @@ void ChangeUserNickname::initUI(){
tipLabel->setFixedSize(QSize(300, 36));
tipLabel->setStyleSheet("color:red;");
nickNameLineEdit = new QLineEdit();
nickNameLineEdit = new QLineEdit(this);
nickNameLineEdit->setFocus();
nickNameLineEdit->setFixedSize(QSize(300, 36));
nickNameLineEdit->setText(realname);
@ -132,9 +133,8 @@ void ChangeUserNickname::initUI(){
}
void ChangeUserNickname::setConnect(){
nickNameLineEdit->installEventFilter(this);
void ChangeUserNickname::setConnect()
{
connect(nickNameLineEdit, &QLineEdit::textEdited, this, [=](QString txt){
nameLegalityCheck(txt);
refreshConfirmBtnStatus();
@ -207,8 +207,6 @@ bool ChangeUserNickname::setTextDynamicInNick(QLabel *label, QString string){
void ChangeUserNickname::keyPressEvent(QKeyEvent * event){
switch (event->key())
{
case Qt::Key_Escape:
break;
case Qt::Key_Enter:
if (confirmBtn->isEnabled())
confirmBtn->clicked();
@ -235,6 +233,7 @@ bool ChangeUserNickname::eventFilter(QObject *watched, QEvent *event){
}
}
}
return QObject::eventFilter(watched, event);
}

View File

@ -662,8 +662,6 @@ bool ChangeUserPwd::setTextDynamicInPwd(QLabel *label, QString string){
void ChangeUserPwd::keyPressEvent(QKeyEvent * event){
switch (event->key())
{
case Qt::Key_Escape:
break;
case Qt::Key_Enter:
if (confirmBtn->isEnabled())
confirmBtn->clicked();

View File

@ -621,8 +621,6 @@ bool CreateUserNew::setCunTextDynamic(QLabel *label, QString string){
void CreateUserNew::keyPressEvent(QKeyEvent * event){
switch (event->key())
{
case Qt::Key_Escape:
break;
case Qt::Key_Enter:
if (confirmBtn->isEnabled())
confirmBtn->clicked();

View File

@ -34,7 +34,7 @@ PasswdCheckUtil::PasswdCheckUtil(QObject *parent) : QObject(parent)
bool PasswdCheckUtil::getCurrentPamState(){
// pam_pwquality.so为安全中心密码强度是否开启判断社区版不做判断
if (UkccCommon::isCommunity() || UkccCommon::isWayland()) {
if (UkccCommon::isCommunity() || UkccCommon::isWayland() || UkccCommon::isOpenkylin()) {
return true;
}
QFile * readFile = new QFile(PAM_CONF_FILE);

View File

@ -184,8 +184,8 @@ void UserInfo::initUI(){
changeCurrentPwdBtn = new QPushButton();
changeCurrentPwdBtn->setFlat(true);
changeCurrentPwdBtn->setText(tr("Passwd"));
changeCurrentPwdBtn->setObjectName("Passwd");
changeCurrentPwdBtn->setText(tr("Password"));
changeCurrentPwdBtn->setObjectName("Password");
changeCurrentTypeBtn = new QPushButton();
changeCurrentTypeBtn->setFlat(true);

View File

@ -26,8 +26,9 @@ target.path = $${PLUGIN_INSTALL_DIRS}
INCLUDEPATH += \
$$PROJECT_ROOTDIR \
LIBS += -L$$[QT_INSTALL_LIBS] -lcrypt -lpolkit-qt5-core-1 -lpam -lpwquality -lkylin_chkname
LIBS += -L$$[QT_INSTALL_LIBS] -lcrypt -lpolkit-qt5-core-1 -lpam -lkysec -lpwquality -lkylin_chkname
DEFINES += ENABLEPQ
DEFINES += WITHKYSEC
##加载gio库和gio-unix库
CONFIG += link_pkgconfig \

View File

@ -29,16 +29,16 @@ UtilsForUserinfo::UtilsForUserinfo(QObject *parent) : QObject(parent)
changePwdBtn = new QPushButton();
changePwdBtn->setFlat(true);
changePwdBtn->setText(tr("Passwd"));
changePwdBtn->setObjectName("Passwd");
changePwdBtn->setText(tr("Password"));
changePwdBtn->setObjectName("Password");
changeTypeBtn = new QPushButton();
changeTypeBtn->setFlat(true);
changeTypeBtn->setText(tr("Type"));
changeTypeBtn->setObjectName("Type");
delUserBtn = new QPushButton();
delUserBtn->setFlat(true);
delUserBtn->setText(tr("Del"));
delUserBtn->setObjectName("Del");
delUserBtn->setText(tr("Delete"));
delUserBtn->setObjectName("Delete");
connect(changePwdBtn, &QPushButton::clicked, this, [=]{
UkccCommon::buriedSettings(QString("UtilsForUserinfo"), changePwdBtn->objectName(), QString("settings"));

View File

@ -313,8 +313,6 @@ bool GrubVerify::eventFilter(QObject *target, QEvent *event)
void GrubVerify::keyPressEvent(QKeyEvent * event){
switch (event->key())
{
case Qt::Key_Escape:
break;
case Qt::Key_Enter:
if (confirmBtn->isEnabled())
confirmBtn->clicked();

View File

@ -256,7 +256,7 @@ void Mouse::dominantHandSlot(int id)
mouseDbus->call("setDominantHand", tmpLeftHand);
UkccCommon::buriedSettings(name(), mouseWidget->dominantHandWidget()->objectName(), QString("settings"));
UkccCommon::buriedSettings(name(), mouseWidget->dominantHandWidget()->objectName(), QString("settings"), id == 0 ? "left-key" : "right-key");
}
void Mouse::scrollDirectionSlot(int id)
@ -272,7 +272,7 @@ void Mouse::scrollDirectionSlot(int id)
mouseDbus->call("setScrollDirection", tmpScrollDirection);
UkccCommon::buriedSettings(name(), mouseWidget->scrollDirectionWdiget()->objectName(), QString("settings"));
UkccCommon::buriedSettings(name(), mouseWidget->scrollDirectionWdiget()->objectName(), QString("settings"), id == 0 ? "Forward" : "Reverse");
}
void Mouse::wheelSpeedSlot()
@ -308,11 +308,10 @@ void Mouse::pointerPositionSlot(bool checked)
void Mouse::pointerSizeSlot(int id)
{
int tmpPointerSize = id;
QString tmpPointerSize = mouseWidget->pointerSizeWidet()->buttonGroup()->button(id)->property("pointer").toString();
mouseDbus->call("setPointerSize", id);
mouseDbus->call("setPointerSize", tmpPointerSize);
UkccCommon::buriedSettings(name(), mouseWidget->pointerSizeWidet()->objectName(), QString("settings"));
UkccCommon::buriedSettings(name(), mouseWidget->pointerSizeWidet()->objectName(), QString("settings"), tmpPointerSize);
}
void Mouse::blinkCursorOnTextSlot(bool checked)

View File

@ -156,8 +156,8 @@ void MouseUI::setDominantHandFrame()
//~ contents_path /Mouse/Dominant hand
mDominantHandWidget = new RadioButtonWidget(tr("Dominant hand"), this, UkccFrame::Top);
mDominantHandWidget->setObjectName("Dominant hand");
mDominantHandLeftRadio = new QRadioButton(tr("Left hand"), this);
mDominantHandRightRadio = new QRadioButton(tr("Right hand"), this);
mDominantHandLeftRadio = new QRadioButton(tr("Left key"), this);
mDominantHandRightRadio = new QRadioButton(tr("Right key"), this);
mDominantHandWidget->addButton(mDominantHandLeftRadio, 0);
mDominantHandWidget->addButton(mDominantHandRightRadio, 1, true);
@ -253,6 +253,9 @@ void MouseUI::setPointerSizeFrame()
mPointerSizeSmallRadio = new QRadioButton(tr("Small(recommend)"), this);
mPointerSizeMediumRadio = new QRadioButton(tr("Medium"), this);
mPointerSizeLargeRadio = new QRadioButton(tr("Large"), this);
mPointerSizeSmallRadio->setProperty("pointer", "Small");
mPointerSizeMediumRadio->setProperty("pointer", "Medium");
mPointerSizeLargeRadio->setProperty("pointer", "Large");
mPointerSizeWidet->addButton(mPointerSizeSmallRadio, 24);
mPointerSizeWidet->addButton(mPointerSizeMediumRadio, 36);
mPointerSizeWidet->addButton(mPointerSizeLargeRadio, 48, true);

View File

@ -219,6 +219,22 @@ void Fonts::initGeneralFontStatus(){
// 初始化字体选择ComBox(选择gtk默认字体作为标准)
QString currentfonts = gtkfontStrList[0];
QProcess *process = new QProcess;
QString cmd = QString("/usr/bin/fc-list | grep '%1'").arg(currentfonts);
process->start("bash", QStringList() <<"-c" << cmd);
process->waitForFinished();
QString ba = process->readAllStandardOutput()+process->readAllStandardError();
delete process;
qDebug() << "cmd = " << cmd << ";ba = " << ba;
if (!ba.isEmpty()) {
QString name = ba.split(":").at(1);
QStringList name1 = name.remove(0,1).split(",");
if (currentfonts != name1.at(0)) {
currentfonts = name1.at(0);
}
qDebug() << "currentfonts =" << currentfonts << ";name1.at(0) = " << name1.at(0);
}
ui->fontSelectComBox->blockSignals(true);
ui->fontSelectComBox->setCurrentText(currentfonts);
ui->fontSelectComBox->blockSignals(false);

View File

@ -2007,6 +2007,7 @@ void Widget::initConnection()
connect(scaleComboBox, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
this, [=](int index){
scaleChangedSlot(scaleComboBox->itemData(index).toDouble());
Utils::buriedSettings(QString("display"), QString("screen zoom"), QString("select"), scaleComboBox->currentText());
});
connect(scaleGSettings,&QGSettings::changed,this,[=](QString key){
if (!key.compare("scalingFactor", Qt::CaseSensitive)) {

View File

@ -184,14 +184,14 @@ InteractiveInfo Area::initInteractiveInfo(int orderNum)
info.listKey = QString("calendarList");
info.key = QString("calendar");
info.setkey = QString("setCalendar");
info.list = {{QString("solarlunar"), tr("solar calendar")},
{QString("lunar"), tr("lunar")}};
info.list = {{QString("solarlunar"), tr("Solar calendar")},
{QString("lunar"), tr("Lunar")}};
} else if (orderNum == AreaUi::FIRSTDAY) {
info.listKey = QString("firstDayList");
info.key = QString("firstDay");
info.setkey = QString("setFirstDay");
info.list = {{QString("monday"), tr("monday")},
{QString("sunday"), tr("sunday")}};
info.list = {{QString("monday"), tr("Monday")},
{QString("sunday"), tr("Sunday")}};
} else if (orderNum == AreaUi::DATEFORMAT) {
info.listKey = QString("dateFormatList");
info.key = QString("dateFormat");

View File

@ -74,7 +74,7 @@
</defaults>
</action>
<action id="org.control.center.qt.systemdbus.action.grub">
<description>set pid</description>
<description>set grub</description>
<description xml:lang="zh">Grub 密码</description>
<description xml:lang="zh_HK">Grub 密碼</description>
<message>To set the grub password, you need to authenticate.</message>
@ -87,4 +87,18 @@
<allow_active>auth_admin</allow_active>
</defaults>
</action>
<action id="org.control.center.qt.systemdbus.action.hostname">
<description>set host name</description>
<description xml:lang="zh">设置主机名</description>
<description xml:lang="zh_HK">設置主機名</description>
<message>To set the hostname, you need to authenticate.</message>
<message xml:lang="zh">需要通过管理员认证后才可以设置主机名</message>
<message xml:lang="zh_HK">需要通過管理員認證後才可以設置主機名</message>
<message xml:lang="bo">དོ་དམ་པས་དཔང་དངོས་བདེན་པ་ཡིན་པའི་ར་སྤྲོད་བརྒྱུད་རྗེས་ད་གཟོད་འཕྲུལ་འཁོར་གྱི་མིང་བཀོད་སྒྲིག་བྱས་ཆོག་།</message>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
</action>
</policyconfig>

View File

@ -491,6 +491,30 @@ bool SysdbusRegister::authoriyPasswdAging(qint64 id)
}
}
bool SysdbusRegister::authoriySetHostName(qint64 id)
{
_id = id;
if (_id == 0)
return false;
PolkitQt1::Authority::Result result;
result = PolkitQt1::Authority::instance()->checkAuthorizationSync(
"org.control.center.qt.systemdbus.action.hostname",
PolkitQt1::UnixProcessSubject(_id),
PolkitQt1::Authority::AllowUserInteraction);
qDebug() << "result = " << result;
if (result == PolkitQt1::Authority::Yes){
_id = 0;
return true;
} else {
_id = 0;
return false;
}
}
void SysdbusRegister::_setI2CBrightness(QString brightness, QString type) {
QString program = "/usr/sbin/i2ctransfer";
QStringList arg;
@ -669,8 +693,16 @@ QHash<QString, QVariant> SysdbusRegister::getaptproxy()
return mAptInfo;
}
void SysdbusRegister::sethostname(QString hostname)
bool SysdbusRegister::sethostname(QString hostname)
{
//密码校验
QDBusConnection conn = connection();
QDBusMessage msg = message();
if (!authoriySetHostName(conn.interface()->servicePid(msg.service()).value())){
return false;
}
QString fileName = "/etc/hosts";
QString strAll;
QFile readFile(fileName);
@ -700,6 +732,8 @@ void SysdbusRegister::sethostname(QString hostname)
stream_2<<strAll;
}
writeFile.close();
return true;
}
QString SysdbusRegister::getMemory()

View File

@ -65,6 +65,7 @@ public:
bool authoriyGrub(qint64 id);
bool authoriyAutoLogin(qint64 id);
bool authoriyPasswdAging(qint64 id);
bool authoriySetHostName(qint64 id);
void notifyPropertyChanged(const QString& interface, const QString &propertyName);
bool NoPwdLoginStatus() const;
@ -147,7 +148,7 @@ public slots:
Q_SCRIPTABLE QHash<QString , QVariant> getaptproxy();
//修改/etc/hosts文件内的主机名
Q_SCRIPTABLE void sethostname(QString hostname);
Q_SCRIPTABLE bool sethostname(QString hostname);
//获取内存大小
Q_SCRIPTABLE QString getMemory();

View File

@ -168,7 +168,7 @@ void HomePageWidget::initUI() {
titleLabel->setText(modulenamei18nString);
QHBoxLayout * funcHorLayout = new QHBoxLayout();
funcHorLayout->setSpacing(4);
funcHorLayout->setSpacing(8);
uint AllWidth = 0;
QList< TristateLabel *> mLabels;
@ -226,6 +226,8 @@ void HomePageWidget::initUI() {
funcHorLayout->addWidget(label);
}
funcHorLayout->addStretch();
// 下属无插件,不显示
if (FunctionSelect::funcinfoListHomePage[moduleIndex].size() == 0 || showModuleCount == 0) {
widget->setVisible(false);

View File

@ -204,12 +204,15 @@ bool MainWindow::eventFilter(QObject *watched, QEvent *event)
maxBtn->setToolTip(tr("Maximize"));
}
} else if (event->type() == QEvent::MouseButtonDblClick) {
bool res = dblOnEdge(dynamic_cast<QMouseEvent*>(event));
if (res) {
if (this->windowState() == Qt::WindowMaximized) {
this->showNormal();
} else {
this->showMaximized();
QMouseEvent * mouseEvent = static_cast<QMouseEvent *>(event);
if (mouseEvent->button() == Qt::LeftButton ){
bool res = dblOnEdge(dynamic_cast<QMouseEvent*>(event));
if (res) {
if (this->windowState() == Qt::WindowMaximized) {
this->showNormal();
} else {
this->showMaximized();
}
}
}
}
@ -431,6 +434,7 @@ void MainWindow::initTileBar() {
backBtn = new QPushButton(this);
backBtn->setObjectName("go-home");
backBtn->setToolTip(tr("Back home"));
mOptionBtn = new QToolButton(this);
minBtn = new QPushButton(this);
maxBtn = new QPushButton(this);

File diff suppressed because it is too large Load Diff

View File

@ -1042,9 +1042,8 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../../plugins/time-language/area/area.cpp" line="188"/>
<source>lunar</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>First day of the week</source>
@ -1130,6 +1129,26 @@
<source></source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../../plugins/time-language/area/area.cpp" line="187"/>
<source>Solar calendar</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/time-language/area/area.cpp" line="188"/>
<source>Lunar</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/time-language/area/area.cpp" line="193"/>
<source>Monday</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/time-language/area/area.cpp" line="194"/>
<source>Sunday</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/time-language/area/area.cpp" line="377"/>
<source>Tibetan</source>
@ -1239,14 +1258,12 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../../plugins/time-language/area/area.cpp" line="187"/>
<source>solar calendar</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../../plugins/time-language/area/area.cpp" line="193"/>
<source>monday</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>English (US)</source>
@ -1261,9 +1278,8 @@
<translation type="vanished"> ()</translation>
</message>
<message>
<location filename="../../../plugins/time-language/area/area.cpp" line="194"/>
<source>sunday</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>change data format</source>
@ -2801,12 +2817,12 @@ Please authenticate yourself to continue</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeusernickname.cpp" line="112"/>
<location filename="../../../plugins/account/userinfo/changeusernickname.cpp" line="113"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeusernickname.cpp" line="115"/>
<location filename="../../../plugins/account/userinfo/changeusernickname.cpp" line="116"/>
<source>Confirm</source>
<translation></translation>
</message>
@ -2884,17 +2900,17 @@ Please authenticate yourself to continue</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeuserpwd.cpp" line="699"/>
<location filename="../../../plugins/account/userinfo/changeuserpwd.cpp" line="697"/>
<source>current pwd cannot be empty!</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeuserpwd.cpp" line="704"/>
<location filename="../../../plugins/account/userinfo/changeuserpwd.cpp" line="702"/>
<source>new pwd cannot be empty!</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeuserpwd.cpp" line="709"/>
<location filename="../../../plugins/account/userinfo/changeuserpwd.cpp" line="707"/>
<source>sure pwd cannot be empty!</source>
<translation></translation>
</message>
@ -3548,7 +3564,7 @@ change system settings</source>
</message>
<message>
<location filename="../../../plugins/account/userinfo/createusernew.cpp" line="504"/>
<location filename="../../../plugins/account/userinfo/createusernew.cpp" line="659"/>
<location filename="../../../plugins/account/userinfo/createusernew.cpp" line="657"/>
<source>NickName&apos;s length must between 1~%1 characters!</source>
<translation>1%1</translation>
</message>
@ -3566,17 +3582,17 @@ change system settings</source>
<translation type="vanished">%1</translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/createusernew.cpp" line="654"/>
<location filename="../../../plugins/account/userinfo/createusernew.cpp" line="652"/>
<source>Username&apos;s length must be between 1 and %1 characters!</source>
<translation>1%1</translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/createusernew.cpp" line="664"/>
<location filename="../../../plugins/account/userinfo/createusernew.cpp" line="662"/>
<source>new pwd cannot be empty!</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/createusernew.cpp" line="669"/>
<location filename="../../../plugins/account/userinfo/createusernew.cpp" line="667"/>
<source>sure pwd cannot be empty!</source>
<translation></translation>
</message>
@ -3791,7 +3807,7 @@ change system settings</source>
<extra-contents_path>/Date/Sync Server</extra-contents_path>
</message>
<message>
<location filename="../../../plugins/time-language/datetime/datetime.cpp" line="321"/>
<location filename="../../../plugins/time-language/datetime/datetime.cpp" line="324"/>
<source>Add Timezone</source>
<translation></translation>
</message>
@ -3855,7 +3871,7 @@ change system settings</source>
</message>
<message>
<location filename="../../../plugins/time-language/datetime/datetime.cpp" line="196"/>
<location filename="../../../plugins/time-language/datetime/datetime.cpp" line="323"/>
<location filename="../../../plugins/time-language/datetime/datetime.cpp" line="326"/>
<source>Change Timezone</source>
<translation></translation>
</message>
@ -6445,20 +6461,20 @@ Please retry or relogin!</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="418"/>
<location filename="../../mainwindow.cpp" line="439"/>
<location filename="../../mainwindow.cpp" line="576"/>
<location filename="../../mainwindow.cpp" line="1023"/>
<location filename="../../mainwindow.cpp" line="421"/>
<location filename="../../mainwindow.cpp" line="443"/>
<location filename="../../mainwindow.cpp" line="580"/>
<location filename="../../mainwindow.cpp" line="1027"/>
<source>Settings</source>
<translation></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="459"/>
<location filename="../../mainwindow.cpp" line="463"/>
<source>Option</source>
<translation></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="460"/>
<location filename="../../mainwindow.cpp" line="464"/>
<source>Minimize</source>
<translation></translation>
</message>
@ -6478,37 +6494,42 @@ Please retry or relogin!</source>
</message>
<message>
<location filename="../../mainwindow.cpp" line="204"/>
<location filename="../../mainwindow.cpp" line="461"/>
<location filename="../../mainwindow.cpp" line="465"/>
<source>Maximize</source>
<translation></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="462"/>
<location filename="../../mainwindow.cpp" line="437"/>
<source>Back home</source>
<translation></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="466"/>
<source>Close</source>
<translation></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="564"/>
<location filename="../../mainwindow.cpp" line="568"/>
<source>Help</source>
<translation></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="566"/>
<location filename="../../mainwindow.cpp" line="570"/>
<source>About</source>
<translation></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="568"/>
<location filename="../../mainwindow.cpp" line="572"/>
<source>Exit</source>
<translation>退</translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="577"/>
<location filename="../../mainwindow.cpp" line="581"/>
<source>Version: </source>
<translation></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="712"/>
<location filename="../../mainwindow.cpp" line="716"/>
<source>Specified</source>
<translation></translation>
</message>
@ -6517,13 +6538,13 @@ Please retry or relogin!</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="1167"/>
<location filename="../../mainwindow.cpp" line="1171"/>
<source>Warning</source>
<translation></translation>
</message>
<message>
<location filename="../../mainwindow.cpp" line="183"/>
<location filename="../../mainwindow.cpp" line="1167"/>
<location filename="../../mainwindow.cpp" line="1171"/>
<source>This function has been controlled</source>
<translation></translation>
</message>
@ -6872,12 +6893,12 @@ Please retry or relogin!</source>
</message>
<message>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="159"/>
<source>Left hand</source>
<source>Left key</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="160"/>
<source>Right hand</source>
<source>Right key</source>
<translation></translation>
</message>
<message>
@ -6906,7 +6927,7 @@ Please retry or relogin!</source>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="186"/>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="202"/>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="220"/>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="276"/>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="279"/>
<source>Slow</source>
<translation></translation>
</message>
@ -6914,7 +6935,7 @@ Please retry or relogin!</source>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="187"/>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="203"/>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="221"/>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="277"/>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="280"/>
<source>Fast</source>
<translation></translation>
</message>
@ -6972,13 +6993,13 @@ Please retry or relogin!</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="265"/>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="268"/>
<source>Blinking cursor in text area</source>
<translation></translation>
<extra-contents_path>/Mouse/Blinking cursor in text area</extra-contents_path>
</message>
<message>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="274"/>
<location filename="../../../plugins/devices/mouse/mouseui.cpp" line="277"/>
<source>Cursor speed</source>
<translation></translation>
<extra-contents_path>/Mouse/Cursor speed</extra-contents_path>
@ -9910,63 +9931,63 @@ E-mail: support@kylinos.cn</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1204"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1186"/>
<location filename="../../../plugins/account/userinfo_intel/userinfo_intel.cpp" line="320"/>
<source>min length %1
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1214"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1196"/>
<location filename="../../../plugins/account/userinfo_intel/userinfo_intel.cpp" line="330"/>
<source>min digit num %1
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1223"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1205"/>
<location filename="../../../plugins/account/userinfo_intel/userinfo_intel.cpp" line="339"/>
<source>min upper num %1
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1232"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1214"/>
<location filename="../../../plugins/account/userinfo_intel/userinfo_intel.cpp" line="348"/>
<source>min lower num %1
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1241"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1223"/>
<location filename="../../../plugins/account/userinfo_intel/userinfo_intel.cpp" line="357"/>
<source>min other num %1
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1251"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1233"/>
<location filename="../../../plugins/account/userinfo_intel/userinfo_intel.cpp" line="367"/>
<source>min char class %1
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1260"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1242"/>
<location filename="../../../plugins/account/userinfo_intel/userinfo_intel.cpp" line="376"/>
<source>max repeat %1
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1269"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1251"/>
<location filename="../../../plugins/account/userinfo_intel/userinfo_intel.cpp" line="385"/>
<source>max class repeat %1
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1278"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1260"/>
<location filename="../../../plugins/account/userinfo_intel/userinfo_intel.cpp" line="394"/>
<source>max sequence %1
</source>
@ -10734,11 +10755,11 @@ E-mail: support@kylinos.cn</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../../searchwidget.cpp" line="65"/>
<location filename="../../searchwidget.cpp" line="66"/>
<location filename="../../searchwidget.cpp" line="73"/>
<location filename="../../searchwidget.cpp" line="75"/>
<location filename="../../searchwidget.cpp" line="80"/>
<location filename="../../searchwidget.cpp" line="67"/>
<location filename="../../searchwidget.cpp" line="74"/>
<location filename="../../searchwidget.cpp" line="76"/>
<location filename="../../searchwidget.cpp" line="81"/>
<source>No search results</source>
<translation></translation>
</message>
@ -12499,12 +12520,12 @@ E-mail: support@kylinos.cn</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1071"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1053"/>
<source>root</source>
<translation>Root</translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1039"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1021"/>
<source>Hint</source>
<translation></translation>
</message>
@ -12513,32 +12534,32 @@ E-mail: support@kylinos.cn</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="946"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="928"/>
<source>The account type of %1 has been modified, will take effect after logout, whether to logout?</source>
<translation>%1</translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="947"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="929"/>
<source>logout later</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="948"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="930"/>
<source>logout now</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1040"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1022"/>
<source>The system only allows one user to log in automatically.After it is turned on, the automatic login of other users will be turned off.Is it turned on?</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1043"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1025"/>
<source>Trun on</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1044"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1026"/>
<source>Close on</source>
<translation></translation>
</message>
@ -12555,12 +12576,12 @@ E-mail: support@kylinos.cn</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1067"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1049"/>
<source>Standard</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1069"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="1051"/>
<source>Admin</source>
<translation></translation>
</message>
@ -12587,8 +12608,9 @@ E-mail: support@kylinos.cn</source>
<extra-contents_path>/Userinfo/Add</extra-contents_path>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.ui" line="309"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="187"/>
<source>Passwd</source>
<source>Password</source>
<translation></translation>
</message>
<message>
@ -12644,11 +12666,6 @@ E-mail: support@kylinos.cn</source>
<source>Change vaild</source>
<translation type="vanished"></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.ui" line="309"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/userinfo.ui" line="331"/>
<location filename="../../../plugins/account/userinfo/userinfo.cpp" line="192"/>
@ -12815,7 +12832,7 @@ E-mail: support@kylinos.cn</source>
<name>UtilsForUserinfo</name>
<message>
<location filename="../../../plugins/account/userinfo/utilsforuserinfo.cpp" line="32"/>
<source>Passwd</source>
<source>Password</source>
<translation></translation>
</message>
<message>
@ -12825,7 +12842,7 @@ E-mail: support@kylinos.cn</source>
</message>
<message>
<location filename="../../../plugins/account/userinfo/utilsforuserinfo.cpp" line="40"/>
<source>Del</source>
<source>Delete</source>
<translation></translation>
</message>
<message>
@ -13162,7 +13179,7 @@ E-mail: support@kylinos.cn</source>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="282"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2039"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2040"/>
<source>Custom Time</source>
<translation></translation>
</message>
@ -13203,7 +13220,7 @@ E-mail: support@kylinos.cn</source>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="602"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2669"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2678"/>
<source>Splice Screen</source>
<translation></translation>
</message>
@ -13256,22 +13273,22 @@ E-mail: support@kylinos.cn</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="2732"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2741"/>
<source>Splicing Method</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="2735"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2744"/>
<source>Change</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="2801"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2810"/>
<source>as main</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="2822"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2831"/>
<source>open monitor</source>
<translation></translation>
</message>
@ -13285,8 +13302,8 @@ E-mail: support@kylinos.cn</source>
<translation>%1&lt;br/&gt;&lt;font style= &apos;color:#626c6e&apos;&gt;%2&lt;/font&gt;</translation>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="2283"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2289"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2292"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2298"/>
<source>Follow the sunrise and sunset</source>
<translation></translation>
</message>
@ -13301,7 +13318,7 @@ E-mail: support@kylinos.cn</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="2800"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2809"/>
<location filename="../../../plugins/system/display_hw/widget.cpp" line="544"/>
<source>monitor</source>
<translation></translation>
@ -13378,7 +13395,7 @@ the settings will be saved after %1 seconds</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="2039"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2040"/>
<source>All Day</source>
<translation></translation>
</message>
@ -13387,8 +13404,8 @@ the settings will be saved after %1 seconds</source>
<translation type="vanished">(17:55-06:23)</translation>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="2314"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2320"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2323"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2329"/>
<location filename="../../../plugins/system/display_hw/widget.cpp" line="2298"/>
<location filename="../../../plugins/system/display_hw/widget.cpp" line="2305"/>
<source>Brightness</source>
@ -13416,7 +13433,7 @@ If something goes wrong, the settings will be restored after 9 seconds</source>
<translation type="vanished">9</translation>
</message>
<message>
<location filename="../../../plugins/system/display/widget.cpp" line="2809"/>
<location filename="../../../plugins/system/display/widget.cpp" line="2818"/>
<location filename="../../../plugins/system/display_hw/widget.cpp" line="547"/>
<source>screen zoom</source>
<translation></translation>
@ -13704,7 +13721,7 @@ Common reasons are that the overall screen size is too big, or you enabled more
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="193"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="645"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="614"/>
<source>Cancel</source>
<translation></translation>
</message>
@ -13714,42 +13731,42 @@ Common reasons are that the overall screen size is too big, or you enabled more
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="646"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="615"/>
<source>Confirm</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="603"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="611"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="681"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="569"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="577"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="653"/>
<source>Tips</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="603"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="681"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="569"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="653"/>
<source>Invalid Id!</source>
<translation>ID!</translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="606"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="614"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="684"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="572"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="580"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="656"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="611"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="577"/>
<source>Invalid Group Name!</source>
<translation>!</translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="643"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="612"/>
<source>Whether delete the group: %1 ?</source>
<translation>%1</translation>
</message>
<message>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="644"/>
<location filename="../../../plugins/account/userinfo/changeusergroup.cpp" line="613"/>
<source>which will make some file components in the file system invalid!</source>
<translation>使ID无效</translation>
</message>

View File

@ -43,6 +43,7 @@ SearchWidget::SearchWidget(QWidget *parent)
this->completer()->setModel(m_model);
QAbstractItemView *popup = m_completer->popup();
this->reloadStyle();
this->setClearButtonEnabled(true);
m_completer->popup()->setAttribute(Qt::WA_InputMethodEnabled);
m_completer->setFilterMode(Qt::MatchContains);//设置QCompleter支持匹配字符搜索
m_completer->setCaseSensitivity(Qt::CaseInsensitive);//这个属性可设置进行匹配时的大小写敏感性