fix(datetime): using dbus interface failed in set time mode goes wrong
Description: using dbus interface failed in set time mode goes wrong Log: 在设置时间同步模式调用dbus失败时会反选 Bug: https://gitee.com/openkylin/ukui-control-center/issues/I7U9XD?from=project-issue
This commit is contained in:
parent
c888065c5c
commit
0289a8de63
|
@ -1,3 +1,13 @@
|
|||
ukui-control-center (3.22.1.25-ok41) yangtze; urgency=medium
|
||||
|
||||
* BUG:#I7U9XD在设置时间同步模式调用dbus失败时会反选
|
||||
* BUG:#I7POYD标签显示null或者为空时隐藏标签
|
||||
* 需求号: 无
|
||||
* 其他改动说明:无
|
||||
* 其他改动影响域:无,重新编译,commit: 04424929
|
||||
|
||||
-- zhoubin <zhoubin@kylinos.cn> Fri, 20 Oct 2023 09:36:59 +0800
|
||||
|
||||
ukui-control-center (3.22.1.25-ok40) yangtze; urgency=medium
|
||||
|
||||
* BUG:#I7WOTL【数据埋点】【控制面板】【关于】关于界面未集成隐私和协议部分
|
||||
|
|
|
@ -307,6 +307,7 @@ void AutoBoot::addAppSlot()
|
|||
QString selectedfile;
|
||||
selectedfile = fd->selectedFiles().first();
|
||||
addItem(selectedfile);
|
||||
UkccCommon::buriedSettings(QStringLiteral("Autoboot"), "add to autoboot list", QString("settings"), selectedfile);
|
||||
}
|
||||
|
||||
void AutoBoot::checkboxChangedSlot(QString bname)
|
||||
|
|
|
@ -80,6 +80,7 @@ void AddShortcutDialog::initSetup()
|
|||
ui->label_5->setText("");
|
||||
ui->certainBtn->setDisabled(true);
|
||||
shortcutLine = new ShortcutLine(systemEntry, customEntry);
|
||||
shortcutLine->setAttribute(Qt::WA_InputMethodEnabled, false);
|
||||
ui->horizontalLayout_2->addWidget(shortcutLine);
|
||||
shortcutLine->setMinimumWidth(280);
|
||||
shortcutLine->setPlaceholderText(tr("Please enter a shortcut"));
|
||||
|
|
|
@ -80,10 +80,10 @@ DoubleClickShortCut::DoubleClickShortCut(QList<KeyEntry> *generalEntries, QList<
|
|||
QWidget *parent) :
|
||||
ShortcutLine(generalEntries, customEntries, parent){
|
||||
this->customEntryList = customEntries;
|
||||
//this->setStyleSheet("QLineEdit {background-color : palette(base);}");
|
||||
this->setContextMenuPolicy(Qt::NoContextMenu);
|
||||
defaultQss = this->styleSheet();
|
||||
|
||||
|
||||
connect(this, &DoubleClickShortCut::textChanged, this, [=](){
|
||||
if (this->text().isEmpty()) {
|
||||
shortcutIsAvailable = false;
|
||||
|
@ -92,10 +92,17 @@ DoubleClickShortCut::DoubleClickShortCut(QList<KeyEntry> *generalEntries, QList<
|
|||
});
|
||||
|
||||
connect(this, &DoubleClickShortCut::shortCutAvailable, this, [=](int flag) {
|
||||
|
||||
shortcutSymbol = flag;
|
||||
if (0 == flag) {
|
||||
shortcutIsAvailable = true;
|
||||
this->setStyleSheet(defaultQss);
|
||||
} else {
|
||||
} else if (-1 == flag) {
|
||||
Q_EMIT shortcutOccupy();
|
||||
shortcutIsAvailable = false;
|
||||
this->setStyleSheet("border:2px solid red;border-radius:6px;padding:3px 4px");
|
||||
} else if (-2 == flag) {
|
||||
Q_EMIT shortcutConflict();
|
||||
shortcutIsAvailable = false;
|
||||
this->setStyleSheet("border:2px solid red;border-radius:6px;padding:3px 4px");
|
||||
}
|
||||
|
|
|
@ -43,12 +43,15 @@ protected:
|
|||
private:
|
||||
QString validShortcut;
|
||||
bool shortcutIsAvailable = false;
|
||||
int shortcutSymbol;
|
||||
QList<KeyEntry> *customEntryList;
|
||||
QString defaultQss;
|
||||
|
||||
Q_SIGNALS:
|
||||
void focusOut();
|
||||
void shortcutChanged();
|
||||
void shortcutConflict();
|
||||
void shortcutOccupy();
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -33,7 +33,6 @@ using namespace ukcc;
|
|||
#include <glib.h>
|
||||
#include <glib/gi18n.h>
|
||||
|
||||
|
||||
Shortcut::Shortcut() : mFirstLoad(true)
|
||||
{
|
||||
pluginName = tr("Shortcut");
|
||||
|
@ -129,34 +128,39 @@ void Shortcut::connectToServer()
|
|||
|
||||
void Shortcut::initContent()
|
||||
{
|
||||
initShortEntry();
|
||||
initSystem();
|
||||
initCustom();
|
||||
}
|
||||
|
||||
void Shortcut::initShortEntry()
|
||||
{
|
||||
QDBusReply<KeyEntryList> listEntrySystem = shortcutInterface->call("getSystemShortcutEntry");
|
||||
QDBusReply<KeyEntryList> listEntryCustom = shortcutInterface->call("getCustomShortcutEntry");
|
||||
|
||||
if (listEntrySystem.isValid()) {
|
||||
systemEntryList = listEntrySystem.value();
|
||||
}
|
||||
|
||||
if (listEntryCustom.isValid()) {
|
||||
customEntryList = listEntryCustom.value();
|
||||
}
|
||||
}
|
||||
|
||||
void Shortcut::initSystem()
|
||||
{
|
||||
QDBusReply<QStringPairList> list = shortcutInterface->call("getSystemShortcut");
|
||||
QDBusReply<KeyEntryList> listEntry = shortcutInterface->call("getSystemShortcutEntry");
|
||||
|
||||
QDBusReply<QStringPairList> list = shortcutInterface->call("getSystemShortcut");
|
||||
if (list.isValid()) {
|
||||
for (QStringPair s : list.value()) {
|
||||
shortcutUi->addSystemShortcut(s.name, s.key);
|
||||
shortcutUi->addSystemShortcut(s.name, s.key, s.mediaKey, &systemEntryList, &customEntryList);
|
||||
}
|
||||
}
|
||||
if (listEntry.isValid()) {
|
||||
systemEntryList = listEntry.value();
|
||||
}
|
||||
}
|
||||
|
||||
void Shortcut::initCustom()
|
||||
{
|
||||
QDBusReply<KeyEntryList> listEntry = shortcutInterface->call("getCustomShortcutEntry");
|
||||
|
||||
if (listEntry.isValid()) {
|
||||
customEntryList = listEntry.value();
|
||||
for (KeyEntry s : listEntry.value()) {
|
||||
shortcutUi->addCustomShortcut(s, &systemEntryList, &customEntryList);
|
||||
}
|
||||
for (KeyEntry s : customEntryList) {
|
||||
shortcutUi->addCustomShortcut(s, &systemEntryList, &customEntryList);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -172,6 +176,11 @@ void Shortcut::connectUiSignals()
|
|||
shortcutInterface->call("updateShortcut");
|
||||
});
|
||||
|
||||
connect(shortcutUi, &ShortcutUi::updateSystemShortcut, this, [=](const QString &key, const QString &value){
|
||||
shortcutInterface->call("setSystemShortcut", key, value);
|
||||
shortcutInterface->call("updateShortcut");
|
||||
});
|
||||
|
||||
connect(shortcutUi, &ShortcutUi::addButtonClicked, this, [=]{
|
||||
AddShortcutDialog *addDialog = new AddShortcutDialog(&systemEntryList, &customEntryList);
|
||||
addDialog->setTitleText(QObject::tr("Customize Shortcut"));
|
||||
|
@ -276,6 +285,18 @@ void Shortcut::createNewShortcut(QString path, QString name, QString exec, QStri
|
|||
|
||||
QString Shortcut::keyToLib(QString key)
|
||||
{
|
||||
if (key.contains("Meta")) {
|
||||
key.replace("Meta", "Win");
|
||||
}
|
||||
|
||||
if (key.contains("Start")) {
|
||||
key.replace("Start", "Win");
|
||||
}
|
||||
|
||||
if (key.contains("Print", Qt::CaseInsensitive)) {
|
||||
key.replace("Print", "PrtSc", Qt::CaseInsensitive);
|
||||
}
|
||||
|
||||
if (key.contains("+")) {
|
||||
QStringList keys = key.split("+");
|
||||
if (keys.count() == 2) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd.
|
||||
*
|
||||
|
@ -58,8 +58,8 @@ public:
|
|||
void connectToServer();
|
||||
QString keyToLib(QString key);
|
||||
|
||||
public:
|
||||
void initContent();
|
||||
void initShortEntry();
|
||||
void initSystem();
|
||||
void initCustom();
|
||||
void connectUiSignals();
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#include "shortcutline.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QKeySequence>
|
||||
#include <unistd.h>
|
||||
#include <QApplication>
|
||||
#include "shortcutline.h"
|
||||
|
||||
#define SNULL "NULL"
|
||||
#define SCTRL "Ctrl"
|
||||
|
@ -19,7 +20,8 @@ int allowKey[] = { // 0-9 -/+ A-Z ,/.
|
|||
Qt::Key_M, Qt::Key_N, Qt::Key_O, Qt::Key_P,
|
||||
Qt::Key_Q, Qt::Key_R, Qt::Key_S, Qt::Key_T,
|
||||
Qt::Key_U, Qt::Key_V, Qt::Key_W, Qt::Key_X,
|
||||
Qt::Key_Y, Qt::Key_Z, Qt::Key_Comma, Qt::Key_Period
|
||||
Qt::Key_Y, Qt::Key_Z, Qt::Key_Comma, Qt::Key_Period,
|
||||
Qt::Key_Print, Qt::Key_Escape, Qt::Key_Delete
|
||||
|
||||
|
||||
};
|
||||
|
@ -38,7 +40,7 @@ ShortcutLine::ShortcutLine(QList<KeyEntry> *generalEntries,
|
|||
systemEntry(generalEntries),
|
||||
customEntry(customEntries)
|
||||
{
|
||||
// this->setReadOnly(true);
|
||||
initInterface();
|
||||
initInputKeyAndText(true);
|
||||
}
|
||||
|
||||
|
@ -74,19 +76,27 @@ void ShortcutLine::keyPressEvent(QKeyEvent *e)
|
|||
// qDebug()<<"0x"<<QString().sprintf("%04X",keyValue);
|
||||
// qDebug()<<"keyCode = = = = = ="<<keyCode<<" "<<keyValue;
|
||||
|
||||
if (keyValue == Qt::Key_Meta && e->modifiers() != Qt::MetaModifier) { // bug#194489
|
||||
keyValue = Qt::Key_Alt;
|
||||
keyCode = 65513;
|
||||
}
|
||||
if (firstKey == SNULL) {
|
||||
firstKey = keyToString(keyValue);
|
||||
if (keyValue == Qt::Key_Control || keyValue == Qt::Key_Alt \
|
||||
|| keyValue == Qt::Key_Shift || keyValue == Qt::Key_Meta) {
|
||||
this->setText(firstKey + QString(" "));
|
||||
|| keyValue == Qt::Key_Shift || keyValue == Qt::Key_Meta || keyValue == Qt::Key_Print
|
||||
|| keyValue == Qt::Key_Super_L) {
|
||||
if (keyValue == Qt::Key_Print) {
|
||||
this->setText(firstKey);
|
||||
shortCutObtained(true, 1);
|
||||
} else {
|
||||
this->setText(firstKey + QString(" "));
|
||||
}
|
||||
} else { //第一个键不是三个辅助键中的其中一个
|
||||
this->setText(firstKey); //显示一下,增强用户交互性
|
||||
qApp->processEvents();
|
||||
usleep(200000);
|
||||
shortCutObtained(false); //快捷键获取失败
|
||||
return;
|
||||
}
|
||||
} else if(secondKey == SNULL){
|
||||
} else if(secondKey == SNULL) {
|
||||
/*第二个键是辅助键中的另外一个*/
|
||||
if ((keyValue == Qt::Key_Control || keyValue == Qt::Key_Alt || \
|
||||
keyValue == Qt::Key_Shift || keyValue == Qt::Key_Meta) &&
|
||||
|
@ -102,7 +112,7 @@ void ShortcutLine::keyPressEvent(QKeyEvent *e)
|
|||
return;
|
||||
}
|
||||
}
|
||||
} else if(thirdKey == SNULL) {
|
||||
} else if (thirdKey == SNULL) {
|
||||
/*第三个键是辅助键中的另外一个*/
|
||||
if ((keyValue == Qt::Key_Control || keyValue == Qt::Key_Alt || \
|
||||
keyValue == Qt::Key_Shift || keyValue == Qt::Key_Meta) &&
|
||||
|
@ -119,7 +129,7 @@ void ShortcutLine::keyPressEvent(QKeyEvent *e)
|
|||
}
|
||||
}
|
||||
|
||||
} else if(forthKey == SNULL) { //第四个键只能是主键
|
||||
} else if (forthKey == SNULL) { //第四个键只能是主键
|
||||
if (lastKeyIsAvailable(keyValue, keyCode)) { // 合法
|
||||
forthKey = keyToString(keyValue);
|
||||
shortCutObtained(true, 4);
|
||||
|
@ -144,6 +154,7 @@ void ShortcutLine::keyReleaseEvent(QKeyEvent *e)
|
|||
|
||||
void ShortcutLine::focusInEvent(QFocusEvent *e)
|
||||
{
|
||||
if (UkccCommon::isWayland() && mKglobalIfc->isValid()) mKglobalIfc->call("blockGlobalShortcuts", true);
|
||||
//establishGrab();
|
||||
this->grabKeyboard();
|
||||
QLineEdit::focusInEvent(e);
|
||||
|
@ -152,6 +163,7 @@ void ShortcutLine::focusInEvent(QFocusEvent *e)
|
|||
|
||||
void ShortcutLine::focusOutEvent(QFocusEvent *e)
|
||||
{
|
||||
if (UkccCommon::isWayland() && mKglobalIfc->isValid()) mKglobalIfc->call("blockGlobalShortcuts", false);
|
||||
//closeGrab();
|
||||
this->releaseKeyboard();
|
||||
QLineEdit::focusOutEvent(e);
|
||||
|
@ -160,16 +172,31 @@ void ShortcutLine::focusOutEvent(QFocusEvent *e)
|
|||
void ShortcutLine::shortCutObtained(const bool &flag, const int &keyNum)
|
||||
{
|
||||
isShortCutObtained = true;
|
||||
if (true == flag && (2 == keyNum || 3 == keyNum || 4 == keyNum)) {
|
||||
if (true == flag && (1 == keyNum || 2 == keyNum || 3 == keyNum || 4 == keyNum)) {
|
||||
shortCutObtainedFlag = true;
|
||||
if (2 == keyNum) {
|
||||
if (firstKey == "Win") {
|
||||
if (1 == keyNum) {
|
||||
this->setText(firstKey);
|
||||
if (firstKey == "PrtSc") {
|
||||
firstKey = "Print";
|
||||
}
|
||||
seq = QKeySequence(firstKey);
|
||||
} else if (2 == keyNum) {
|
||||
this->setText(firstKey + QString(" ") + secondKey);
|
||||
if (secondKey == "PrtSc") {
|
||||
secondKey = "Print";
|
||||
}
|
||||
|
||||
if (firstKey == "Win" || firstKey == "Start") {
|
||||
seq = QKeySequence("Meta" + QString("+") + secondKey);
|
||||
} else {
|
||||
seq = QKeySequence(firstKey + QString("+") + secondKey);
|
||||
}
|
||||
this->setText(firstKey + QString(" ") + secondKey);
|
||||
} else if (3 == keyNum){
|
||||
|
||||
} else if (3 == keyNum) {
|
||||
this->setText(firstKey + QString(" ") + secondKey + QString(" ") + thirdKey);
|
||||
if (thirdKey == "PrtSc") {
|
||||
thirdKey = "Print";
|
||||
}
|
||||
if (firstKey == "Win") {
|
||||
seq = QKeySequence("Meta" + QString("+") + secondKey + QString("+") + thirdKey);
|
||||
} else if (secondKey == "Win") {
|
||||
|
@ -177,8 +204,12 @@ void ShortcutLine::shortCutObtained(const bool &flag, const int &keyNum)
|
|||
} else {
|
||||
seq = QKeySequence(firstKey + QString("+") + secondKey + QString("+") + thirdKey);
|
||||
}
|
||||
this->setText(firstKey + QString(" ") + secondKey + QString(" ") + thirdKey);
|
||||
|
||||
} else if (4 == keyNum){
|
||||
this->setText(firstKey + QString(" ") + secondKey + QString(" ") + thirdKey + QString(" ") + forthKey);
|
||||
if (forthKey == "PrtSc") {
|
||||
forthKey = "Print";
|
||||
}
|
||||
if (firstKey == "Win") {
|
||||
seq = QKeySequence("Meta" + QString("+") + secondKey + QString("+") + thirdKey + QString("+") + forthKey);
|
||||
} else if (secondKey == "Win") {
|
||||
|
@ -188,16 +219,21 @@ void ShortcutLine::shortCutObtained(const bool &flag, const int &keyNum)
|
|||
} else {
|
||||
seq = QKeySequence(firstKey + QString("+") + secondKey + QString("+") + thirdKey + QString("+") + forthKey);
|
||||
}
|
||||
this->setText(firstKey + QString(" ") + secondKey + QString(" ") + thirdKey + QString(" ") + forthKey);
|
||||
|
||||
}
|
||||
|
||||
if (conflictWithGlobalShortcuts(seq) || conflictWithStandardShortcuts(seq)
|
||||
|| conflictWithSystemShortcuts(seq) || conflictWithCustomShortcuts(seq)) { //快捷键冲突
|
||||
if (conflictWithSystemShortcuts(seq) || conflictWithCustomShortcuts(seq)) { //快捷键冲突
|
||||
Q_EMIT shortCutAvailable(-2);
|
||||
} else if (conflictWithGlobalShortcuts(seq) || conflictWithStandardShortcuts(seq)) {
|
||||
shortCutObtainedFlag = false;
|
||||
initInputKeyAndText(true);
|
||||
Q_EMIT shortCutAvailable(-1);
|
||||
} else {
|
||||
Q_EMIT shortCutAvailable(0);
|
||||
}
|
||||
} else { //快捷键无效
|
||||
conflictValue = conflictKey = firstKey;
|
||||
conflictValue = conflictValue.isEmpty() ? "Fn" : conflictValue;
|
||||
shortCutObtainedFlag = false;
|
||||
initInputKeyAndText(true);
|
||||
Q_EMIT shortCutAvailable(-1);
|
||||
|
@ -231,7 +267,7 @@ bool ShortcutLine::conflictWithGlobalShortcuts(const QKeySequence &keySequence)
|
|||
QHash<QKeySequence, QList<KGlobalShortcutInfo> > clashing;
|
||||
for (int i = 0; i < keySequence.count(); ++i) {
|
||||
QKeySequence keys(keySequence[i]);
|
||||
|
||||
qDebug() << "全局快捷键冲突" << keySequence.count() << keySequence << keys;
|
||||
if (!KGlobalAccel::isGlobalShortcutAvailable(keySequence)) {
|
||||
clashing.insert(keySequence, KGlobalAccel::getGlobalShortcutsByKey(keys));
|
||||
}
|
||||
|
@ -240,7 +276,9 @@ bool ShortcutLine::conflictWithGlobalShortcuts(const QKeySequence &keySequence)
|
|||
if (clashing.isEmpty()) {
|
||||
return false;
|
||||
} else {
|
||||
qDebug() << "conflict With Global Shortcuts";
|
||||
qDebug() << "conflict With Global Shortcuts" << clashing[keySequence][0].friendlyName();;
|
||||
conflictValue = clashing[keySequence][0].friendlyName();
|
||||
conflictKey = keySequence.toString();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -250,7 +288,9 @@ bool ShortcutLine::conflictWithStandardShortcuts(const QKeySequence &seq)
|
|||
{
|
||||
KStandardShortcut::StandardShortcut ssc = KStandardShortcut::find(seq);
|
||||
if (ssc != KStandardShortcut::AccelNone) {
|
||||
qDebug() << "conflict With Standard Shortcuts";
|
||||
qDebug() << "conflict With Standard Shortcuts" << seq;
|
||||
conflictValue = KStandardShortcut::label(ssc);
|
||||
conflictKey = seq.toString();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -262,16 +302,35 @@ bool ShortcutLine::conflictWithSystemShortcuts(const QKeySequence &seq)
|
|||
if (systemKeyStr.contains("Meta")) {
|
||||
systemKeyStr.replace("Meta", "Win");
|
||||
}
|
||||
if (systemKeyStr.contains("Start")) {
|
||||
systemKeyStr.replace("Start", "Win");
|
||||
}
|
||||
|
||||
if (systemKeyStr.contains("PrtSc", Qt::CaseInsensitive)) {
|
||||
systemKeyStr.replace("PrtSc", "Print", Qt::CaseInsensitive);
|
||||
}
|
||||
for (KeyEntry ckeyEntry : *systemEntry) {
|
||||
QString ckeyString = ckeyEntry.valueStr;
|
||||
if (ckeyString.contains("Control")) {
|
||||
ckeyString.replace("Control", "Ctrl");
|
||||
if (ckeyString.contains("Control", Qt::CaseInsensitive)) {
|
||||
ckeyString.replace("Control", "Ctrl", Qt::CaseInsensitive);
|
||||
}
|
||||
if (systemKeyStr == ckeyString) {
|
||||
|
||||
if (ckeyString.contains("Start")) {
|
||||
ckeyString.replace("Start", "Win");
|
||||
}
|
||||
|
||||
if (ckeyString.contains("PrtSc", Qt::CaseInsensitive)) {
|
||||
ckeyString.replace("PrtSc", "Print", Qt::CaseInsensitive);
|
||||
}
|
||||
|
||||
if (!systemKeyStr.compare(ckeyString, Qt::CaseInsensitive)) {
|
||||
qDebug() << "conflictWithSystemShortcuts" << seq;
|
||||
conflictValue.clear();
|
||||
conflictKey = ckeyEntry.keyStr;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -290,7 +349,9 @@ bool ShortcutLine::conflictWithCustomShortcuts(const QKeySequence &seq)
|
|||
ckeyString.replace("Meta", "Win");
|
||||
}
|
||||
if (customKeyStr == ckeyString) {
|
||||
qDebug() << "conflictWithCustomShortcuts" << seq;
|
||||
qDebug() << "conflictWithCustomShortcuts" << seq << ckeyEntry.keyStr;
|
||||
conflictValue.clear();
|
||||
conflictKey = ckeyEntry.actionStr;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -326,12 +387,22 @@ void ShortcutLine::setKeySequence(QKeySequence setSeq){
|
|||
this->seq = setSeq;
|
||||
}
|
||||
|
||||
void ShortcutLine::initInterface()
|
||||
{
|
||||
mKglobalIfc = new QDBusInterface("org.kde.kglobalaccel",
|
||||
"/kglobalaccel",
|
||||
"org.kde.KGlobalAccel",
|
||||
QDBusConnection::sessionBus(),
|
||||
this);
|
||||
}
|
||||
|
||||
QString ShortcutLine::keyToString(int keyValue)
|
||||
{
|
||||
QString keyValue_QT_KEY;//表示意义
|
||||
|
||||
//键盘上大部分键值对应的都是其表示的ASCII码值
|
||||
keyValue_QT_KEY = QString(keyValue);
|
||||
if (keyValue == 0) keyValue_QT_KEY = "Fn";
|
||||
|
||||
//对于特殊意义的键值[无法用ASCII码展示]
|
||||
switch (keyValue)
|
||||
|
@ -339,11 +410,9 @@ QString ShortcutLine::keyToString(int keyValue)
|
|||
case Qt::Key_Escape:
|
||||
keyValue_QT_KEY = QString("Esc");
|
||||
break;
|
||||
|
||||
case Qt::Key_Tab:
|
||||
keyValue_QT_KEY = QString("Tab");
|
||||
break;
|
||||
|
||||
case Qt::Key_CapsLock:
|
||||
keyValue_QT_KEY = QString("CapsLock");
|
||||
break;
|
||||
|
@ -446,6 +515,18 @@ QString ShortcutLine::keyToString(int keyValue)
|
|||
case Qt::Key_Pause:
|
||||
keyValue_QT_KEY = QString("Pause");
|
||||
break;
|
||||
case Qt::Key_Print:
|
||||
keyValue_QT_KEY = QString("PrtSc");
|
||||
break;
|
||||
case Qt::Key_Super_L:
|
||||
keyValue_QT_KEY = QString("Win");
|
||||
break;
|
||||
case Qt::Key::Key_WakeUp:
|
||||
keyValue_QT_KEY = QString("Fn");
|
||||
break;
|
||||
default:
|
||||
keyValue_QT_KEY = QKeySequence(keyValue).toString();
|
||||
break;
|
||||
}
|
||||
|
||||
return keyValue_QT_KEY;
|
||||
|
|
|
@ -1,11 +1,19 @@
|
|||
#ifndef SHORTCUTLINE_H
|
||||
#define SHORTCUTLINE_H
|
||||
|
||||
|
||||
#include "type.h"
|
||||
#include "ukcccommon.h"
|
||||
|
||||
#include <QLineEdit>
|
||||
#include <QKeyEvent>
|
||||
#include <KActionCollection>
|
||||
#include <KGlobalAccel>
|
||||
#include <QObject>
|
||||
#include "type.h"
|
||||
#include <QDBusInterface>
|
||||
#include <QDBusConnection>
|
||||
|
||||
using namespace ukcc;
|
||||
|
||||
class ShortcutLine : public QLineEdit
|
||||
{
|
||||
|
@ -20,6 +28,10 @@ protected:
|
|||
void focusInEvent(QFocusEvent *e); //焦点进入事件
|
||||
void focusOutEvent(QFocusEvent *e); //焦点退出事件
|
||||
|
||||
public:
|
||||
QString conflictValue = "";
|
||||
QString conflictKey = "";
|
||||
|
||||
private:
|
||||
QString firstKey, secondKey, thirdKey, forthKey;
|
||||
bool shortCutObtainedFlag;
|
||||
|
@ -27,6 +39,7 @@ private:
|
|||
QList<KeyEntry> *customEntry;
|
||||
QKeySequence seq;
|
||||
bool isShortCutObtained = false;
|
||||
QDBusInterface *mKglobalIfc;
|
||||
|
||||
public:
|
||||
void initInputKeyAndText(const bool &clearText);
|
||||
|
@ -40,10 +53,10 @@ public:
|
|||
QString keyToString(int keyValue);
|
||||
QKeySequence keySequence();
|
||||
void setKeySequence(QKeySequence setSeq);
|
||||
void initInterface();
|
||||
|
||||
Q_SIGNALS:
|
||||
void shortCutAvailable(const int &flag); //0:success, -1:shortcut invalid, -2:shortcut conflict
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#include "shortcutui.h"
|
||||
|
||||
|
||||
ShortcutUi::ShortcutUi()
|
||||
{
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
|
@ -61,41 +60,336 @@ void ShortcutUi::initCustom()
|
|||
|
||||
}
|
||||
|
||||
void ShortcutUi::addSystemShortcut(const QString &name, const QString &shortcut)
|
||||
void ShortcutUi::updateGeneralShort(DoubleClickShortCut *shortCutEdit, QString key, QString value, bool isConflict)
|
||||
{
|
||||
UkccFrame *shortCutFrame = new UkccFrame(this);
|
||||
FixLabel *nameLabel = new FixLabel(shortCutFrame);
|
||||
FixLabel *bindingLabel = new FixLabel(shortCutFrame);
|
||||
QHBoxLayout *gHorLayout = new QHBoxLayout(shortCutFrame);
|
||||
|
||||
shortCutFrame->setFixedHeight(52);
|
||||
gHorLayout->setSpacing(140);
|
||||
gHorLayout->setContentsMargins(16, 0, 16, 0);
|
||||
if (isConflict) {
|
||||
for (int i = 0; i < mSystemEntryList.count(); i++) {
|
||||
|
||||
if (keyToLib(mSystemEntryList[i].valueStr).contains(keyToLib(value), Qt::CaseInsensitive) && !value.isEmpty()) {
|
||||
|
||||
|
||||
for (int j = 0; j < mGeneralLineEdit.size(); j++) {
|
||||
if (mGeneralLineEdit[j]->property("shortKey").toString().contains(keyToLib(value), Qt::CaseInsensitive) &&
|
||||
shortCutEdit != mGeneralLineEdit[j]) {
|
||||
|
||||
mGeneralLineEdit[j]->blockSignals(true);
|
||||
mGeneralLineEdit[j]->setText(tr("Null"));
|
||||
mGeneralLineEdit[j]->blockSignals(false);
|
||||
|
||||
mGeneralName[j]->blockSignals(true);
|
||||
mGeneralName[j]->setText(tr("Null"));
|
||||
mGeneralName[j]->blockSignals(false);
|
||||
}
|
||||
mSystemEntryList[i].valueStr = "Null";
|
||||
Q_EMIT updateSystemShortcut(mSystemEntryList[i].keyStr, "Null");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < mCustomEntryList.count(); i++) {
|
||||
|
||||
if (keyToLib(mCustomEntryList[i].bindingStr).contains(keyToLib(value), Qt::CaseInsensitive)) {
|
||||
for (int j = 0; j < mCustomLineEdit.size(); j++) {
|
||||
|
||||
qDebug() << "自定义快捷键冲突" << mCustomLineEdit[j]->property("shortKey").toString() <<mCustomEntryList[i].bindingStr;
|
||||
if (mCustomLineEdit[j]->property("shortKey").toString().contains(mCustomEntryList[i].bindingStr, Qt::CaseInsensitive)) {
|
||||
mCustomLineEdit[j]->blockSignals(true);
|
||||
mCustomLineEdit[j]->setText(tr("Null"));
|
||||
mCustomLineEdit[j]->blockSignals(false);
|
||||
|
||||
mCustomName[j]->blockSignals(true);
|
||||
mCustomName[j]->setText(tr("Null"));
|
||||
mCustomName[j]->blockSignals(false);
|
||||
}
|
||||
}
|
||||
|
||||
mCustomEntryList[i].bindingStr = "";
|
||||
Q_EMIT updateCustomShortcut(mCustomEntryList[i].gsPath.toLatin1(), "binding", "Null");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < mSystemEntryList.count(); i++) {
|
||||
if (key == mSystemEntryList[i].keyStr) {
|
||||
mSystemEntryList[i].valueStr = keyToLib(value);
|
||||
shortCutEdit->setProperty("shortKey", keyToLib(value));
|
||||
Q_EMIT updateSystemShortcut(key, keyToLib(value));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShortcutUi::addSystemShortcut(const QString &name, const QString &shortcut, const QString &mediaKey, KeyEntryList *systemEntryList, KeyEntryList *customEntryList)
|
||||
{
|
||||
mSystemEntryList = *systemEntryList;
|
||||
|
||||
int editWidth = 286;
|
||||
QString keyStr = mediaKey;
|
||||
QString value = shortcut;
|
||||
QStringList twiceValues;
|
||||
|
||||
UkccFrame *shortCutFrame = new UkccFrame(this);
|
||||
|
||||
FixLabel *nameLabel = new FixLabel(shortCutFrame);
|
||||
ClickFixLabel *bingdingLabel = new ClickFixLabel(shortCutFrame);
|
||||
ClickFixLabel *bingdingLabelTwice = nullptr;
|
||||
|
||||
DoubleClickShortCut *bingdingLineEditTwice = nullptr;
|
||||
DoubleClickShortCut *bingdingLineEdit = new DoubleClickShortCut(&mSystemEntryList, &mCustomEntryList, shortCutFrame);
|
||||
|
||||
QHBoxLayout *gHorLayout = new QHBoxLayout(shortCutFrame);
|
||||
QHBoxLayout *lineEditLayout = new QHBoxLayout;
|
||||
QHBoxLayout *lineEditLayoutTwice = new QHBoxLayout;
|
||||
|
||||
#ifndef Nile
|
||||
FixLabel *bindingLabel = new FixLabel(shortCutFrame);
|
||||
bindingLabel->setText(getShowShortcutString(shortcut));
|
||||
bindingLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||||
#endif
|
||||
|
||||
nameLabel->setText(name);
|
||||
bindingLabel->setText(shortcut);
|
||||
bindingLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
|
||||
gHorLayout->setContentsMargins(16, 8, 16, 8);
|
||||
|
||||
bool isTwice = false;
|
||||
|
||||
if (shortcut.contains("or")) {
|
||||
editWidth = 130;
|
||||
isTwice = true;
|
||||
twiceValues = shortcut.split("or");
|
||||
value = twiceValues.at(1);
|
||||
|
||||
bingdingLineEditTwice = new DoubleClickShortCut(systemEntryList, customEntryList);
|
||||
bingdingLineEditTwice->setAttribute(Qt::WA_InputMethodEnabled, false);
|
||||
bingdingLabelTwice = new ClickFixLabel(shortCutFrame);
|
||||
bingdingLabelTwice->setStyleSheet("QLabel{background-color:palette(button);border-radius: 4px}");
|
||||
|
||||
bingdingLineEditTwice->setFixedWidth(150);
|
||||
|
||||
bingdingLabelTwice->setFixedWidth(150);
|
||||
bingdingLabelTwice->setText(getShowShortcutString(value));
|
||||
|
||||
lineEditLayoutTwice->addWidget(bingdingLineEditTwice, 1);
|
||||
lineEditLayoutTwice->addWidget(bingdingLabelTwice, 1);
|
||||
bingdingLineEditTwice->setVisible(false);
|
||||
|
||||
bingdingLineEditTwice->blockSignals(true);
|
||||
bingdingLineEditTwice->setText(getShowShortcutString(value));
|
||||
bingdingLineEditTwice->setKeySequence(QKeySequence(value));
|
||||
bingdingLineEditTwice->setProperty("shortKey", value);
|
||||
bingdingLineEditTwice->blockSignals(false);
|
||||
|
||||
mAllKeyI18nName.insert(keyStr + "2", QString(name));
|
||||
|
||||
mGeneralLineEdit.append(bingdingLineEditTwice);
|
||||
mGeneralName.append(bingdingLabelTwice);
|
||||
|
||||
connect(bingdingLabelTwice,&ClickFixLabel::doubleClicked,this,[=](){
|
||||
bingdingLabelTwice->hide();
|
||||
bingdingLineEditTwice->show();
|
||||
bingdingLineEditTwice->setFocus();
|
||||
});
|
||||
|
||||
connect(bingdingLineEditTwice,&DoubleClickShortCut::focusOut,this,[=](){
|
||||
bingdingLabelTwice->show();
|
||||
bingdingLineEditTwice->hide();
|
||||
});
|
||||
|
||||
connect(bingdingLineEditTwice, &DoubleClickShortCut::shortcutChanged, this, [=]() {
|
||||
QString text = bingdingLineEditTwice->text();
|
||||
QString shortCutValue = bingdingLineEditTwice->keySequence().toString();
|
||||
if (text.contains("Start") && shortCutValue.contains("Meta")) {
|
||||
shortCutValue.replace("Meta", "Start");
|
||||
text.replace("Start", "Win");
|
||||
}
|
||||
updateGeneralShort(bingdingLineEditTwice, keyStr + "2", shortCutValue, false);
|
||||
bingdingLineEditTwice->blockSignals(true);
|
||||
bingdingLineEditTwice->setText(getShowShortcutString(bingdingLineEditTwice->text()));
|
||||
bingdingLineEditTwice->blockSignals(false);
|
||||
bingdingLabelTwice->setText(bingdingLineEditTwice->text());
|
||||
});
|
||||
|
||||
connect(bingdingLineEditTwice, &DoubleClickShortCut::shortcutConflict, this, [=](){
|
||||
|
||||
QString tipValue = conflictTip(bingdingLineEditTwice->conflictKey, bingdingLineEditTwice->conflictValue);
|
||||
QString text = bingdingLineEditTwice->text();
|
||||
QMessageBox msg;
|
||||
msg.setIcon(QMessageBox::Warning);
|
||||
msg.addButton(tr("Cancel"), QMessageBox::NoRole);
|
||||
msg.addButton(tr("Use"), QMessageBox::ApplyRole);
|
||||
msg.setText(tr("Shortcut key conflict, use it?"));
|
||||
msg.setInformativeText(QString(tr("%1 occuied, using this combination will invalidate %2")).
|
||||
arg(bingdingLineEditTwice->text()).arg(tipValue));
|
||||
int ret = msg.exec();
|
||||
|
||||
if (ret == 1) {
|
||||
QString shortCutValue = bingdingLineEditTwice->keySequence().toString();
|
||||
if (text.contains("Start") && shortCutValue.contains("Meta")) {
|
||||
shortCutValue.replace("Meta", "Start");
|
||||
text.replace("Start", "Win");
|
||||
}
|
||||
updateGeneralShort(bingdingLineEditTwice, keyStr + "2", shortCutValue, true);
|
||||
bingdingLineEditTwice->blockSignals(true);
|
||||
bingdingLineEditTwice->setText(getShowShortcutString(text));
|
||||
bingdingLineEditTwice->blockSignals(false);
|
||||
bingdingLabelTwice->setText(getShowShortcutString(text));
|
||||
} else {
|
||||
Q_EMIT bingdingLabelTwice->doubleClicked();
|
||||
}
|
||||
});
|
||||
|
||||
connect(bingdingLineEditTwice, &DoubleClickShortCut::shortcutOccupy, this, [=]() {
|
||||
QMessageBox msg;
|
||||
msg.setIcon(QMessageBox::Warning);
|
||||
msg.setText(QString(tr("Shortcut \"%1\" occuied, please change the key combination")).arg(bingdingLineEditTwice->conflictKey));
|
||||
msg.exec();
|
||||
Q_EMIT bingdingLabelTwice->doubleClicked();
|
||||
});
|
||||
}
|
||||
|
||||
if (isTwice) value = twiceValues.at(0);
|
||||
|
||||
mGeneralLineEdit.append(bingdingLineEdit);
|
||||
mGeneralName.append(bingdingLabel);
|
||||
|
||||
bingdingLabel->setText(getShowShortcutString(value));
|
||||
bingdingLabel->setFixedSize(editWidth, 36);
|
||||
bingdingLabel->setStyleSheet("QLabel{background-color:palette(button);border-radius: 4px}");
|
||||
bingdingLabel->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
|
||||
|
||||
bingdingLineEdit->setAttribute(Qt::WA_InputMethodEnabled, false);
|
||||
bingdingLineEdit->setFixedSize(editWidth, 36);
|
||||
bingdingLineEdit->setAlignment(Qt::AlignLeft);
|
||||
bingdingLineEdit->blockSignals(true);
|
||||
bingdingLineEdit->setText(getShowShortcutString(value));
|
||||
bingdingLineEdit->setKeySequence(QKeySequence(value));
|
||||
bingdingLineEdit->setProperty("shortKey", value);
|
||||
bingdingLineEdit->blockSignals(false);
|
||||
bingdingLineEdit->setVisible(false);
|
||||
|
||||
QSizePolicy policy;
|
||||
policy = nameLabel->sizePolicy();
|
||||
policy = bingdingLabel->sizePolicy();
|
||||
policy.setHorizontalPolicy(QSizePolicy::Ignored);
|
||||
nameLabel->setSizePolicy(policy);
|
||||
bingdingLabel->setSizePolicy(policy);
|
||||
|
||||
policy = bindingLabel->sizePolicy();
|
||||
policy = bingdingLineEdit->sizePolicy();
|
||||
policy.setHorizontalPolicy(QSizePolicy::Ignored);
|
||||
bindingLabel->setSizePolicy(policy);
|
||||
bingdingLineEdit->setSizePolicy(policy);
|
||||
|
||||
policy = bingdingLabel->sizePolicy();
|
||||
policy.setHorizontalPolicy(QSizePolicy::Ignored);
|
||||
bingdingLabel->setSizePolicy(policy);
|
||||
|
||||
mAllKeyI18nName.insert(keyStr, name);
|
||||
|
||||
lineEditLayout->addWidget(bingdingLineEdit, 1);
|
||||
lineEditLayout->addWidget(bingdingLabel, 1);
|
||||
|
||||
gHorLayout->addWidget(nameLabel, 1);
|
||||
|
||||
#ifdef Nile
|
||||
gHorLayout->addStretch();
|
||||
gHorLayout->addLayout(lineEditLayout, 1);
|
||||
gHorLayout->addLayout(lineEditLayoutTwice, 1);
|
||||
#else
|
||||
bingdingLineEdit->setVisible(false);
|
||||
bingdingLabel->setVisible(false);
|
||||
if (bingdingLineEditTwice != nullptr) {
|
||||
bingdingLineEditTwice->setVisible(false);
|
||||
bingdingLabelTwice->setVisible(false);
|
||||
}
|
||||
gHorLayout->addWidget(bindingLabel, 1);
|
||||
#endif
|
||||
|
||||
shortCutFrame->setFixedHeight(52);
|
||||
shortCutFrame->setLayout(gHorLayout);
|
||||
|
||||
systemShortcutGroup->addWidget(shortCutFrame);
|
||||
|
||||
connect(bingdingLabel,&ClickFixLabel::doubleClicked,this,[=](){
|
||||
bingdingLabel->hide();
|
||||
bingdingLineEdit->show();
|
||||
bingdingLineEdit->setFocus();
|
||||
});
|
||||
|
||||
connect(bingdingLineEdit,&DoubleClickShortCut::focusOut,this,[=](){
|
||||
bingdingLabel->show();
|
||||
bingdingLineEdit->hide();
|
||||
});
|
||||
|
||||
connect(bingdingLineEdit, &DoubleClickShortCut::shortcutChanged, this, [=]() {
|
||||
QString text = bingdingLineEdit->text();
|
||||
QString shortCutValue = bingdingLineEdit->keySequence().toString();
|
||||
if (text.contains("Start") && shortCutValue.contains("Meta")) {
|
||||
shortCutValue.replace("Meta", "Start");
|
||||
text.replace("Start", "Win");
|
||||
}
|
||||
updateGeneralShort(bingdingLineEdit, keyStr, shortCutValue, false);
|
||||
bingdingLineEdit->blockSignals(true);
|
||||
bingdingLineEdit->setText(getShowShortcutString(text));
|
||||
bingdingLineEdit->blockSignals(false);
|
||||
bingdingLabel->setText(text);
|
||||
});
|
||||
|
||||
connect(bingdingLineEdit, &DoubleClickShortCut::shortcutConflict, this, [=]() {
|
||||
QString tipValue = conflictTip(bingdingLineEdit->conflictKey, bingdingLineEdit->conflictValue);
|
||||
QString text = bingdingLineEdit->text();
|
||||
if (text.contains("Start")) {
|
||||
text.replace("Start", "Win");
|
||||
}
|
||||
if (text.contains("Meta")) {
|
||||
text.replace("Meta", "Win");
|
||||
}
|
||||
|
||||
QMessageBox msg;
|
||||
msg.setIcon(QMessageBox::Warning);
|
||||
msg.addButton(tr("Cancel"), QMessageBox::NoRole);
|
||||
msg.addButton(tr("Use"), QMessageBox::ApplyRole);
|
||||
msg.setText(tr("Shortcut key conflict, use it?"));
|
||||
msg.setInformativeText(QString(tr("%1 occuied, using this combination will invalidate %2")).
|
||||
arg(text).arg(tipValue));
|
||||
int ret = msg.exec();
|
||||
|
||||
if (ret) {
|
||||
QString shortCutValue = bingdingLineEdit->keySequence().toString();
|
||||
if (text.contains("Start") && shortCutValue.contains("Meta")) {
|
||||
shortCutValue.replace("Meta", "Win");
|
||||
text.replace("Start", "Win");
|
||||
}
|
||||
updateGeneralShort(bingdingLineEdit, keyStr, shortCutValue, true);
|
||||
bingdingLineEdit->blockSignals(true);
|
||||
bingdingLineEdit->setText(getShowShortcutString(text));
|
||||
bingdingLineEdit->blockSignals(false);
|
||||
bingdingLabel->setText(getShowShortcutString(text));
|
||||
} else {
|
||||
Q_EMIT bingdingLabel->doubleClicked();
|
||||
}
|
||||
});
|
||||
|
||||
connect(bingdingLineEdit, &DoubleClickShortCut::shortcutOccupy, this, [=]() {
|
||||
QMessageBox msg;
|
||||
msg.setIcon(QMessageBox::Warning);
|
||||
QString text = bingdingLineEdit->conflictKey;
|
||||
if (text.contains("Start")) {
|
||||
text.replace("Start", "Win");
|
||||
}
|
||||
if (text.contains("Meta")) {
|
||||
text.replace("Meta", "Win");
|
||||
}
|
||||
msg.setText(QString(tr("Shortcut \"%1\" occuied, please change the key combination")).arg(text));
|
||||
msg.exec();
|
||||
Q_EMIT bingdingLabel->doubleClicked();
|
||||
});
|
||||
}
|
||||
|
||||
void ShortcutUi::addCustomShortcut(KeyEntry keyEntry, KeyEntryList *systemEntryList, KeyEntryList *customEntryList)
|
||||
{
|
||||
mCustomEntryList = *customEntryList;
|
||||
|
||||
UkccFrame *frame = new UkccFrame(this, UkccFrame::BorderRadiusStyle::Around, true);
|
||||
QHBoxLayout *layout = new QHBoxLayout(frame);
|
||||
QHBoxLayout *lineEditLayout = new QHBoxLayout;
|
||||
DoubleClickLineEdit *nameLineEdit = new DoubleClickLineEdit(customEntryList, frame);
|
||||
DoubleClickShortCut *bingdingLineEdit = new DoubleClickShortCut(systemEntryList, customEntryList);
|
||||
DoubleClickShortCut *bingdingLineEdit = new DoubleClickShortCut(&mSystemEntryList, &mCustomEntryList);
|
||||
ClickFixLabel *nameLabel = new ClickFixLabel(frame);
|
||||
ClickFixLabel *bingdingLabel = new ClickFixLabel(frame);
|
||||
KeyEntry *mKeyEntry = new KeyEntry;
|
||||
|
@ -118,10 +412,13 @@ void ShortcutUi::addCustomShortcut(KeyEntry keyEntry, KeyEntryList *systemEntryL
|
|||
// 输入限制
|
||||
nameLineEdit->setValidator(regValidator);
|
||||
nameLineEdit->setFixedHeight(36);
|
||||
bingdingLineEdit->setFixedHeight(36);
|
||||
bingdingLineEdit->setFixedSize(130,36);
|
||||
|
||||
bingdingLineEdit->setAlignment(Qt::AlignRight);
|
||||
bingdingLabel->setAlignment(Qt::AlignRight | Qt::AlignCenter);
|
||||
bingdingLineEdit->setAttribute(Qt::WA_InputMethodEnabled, false);
|
||||
bingdingLabel->setFixedSize(130, 36);
|
||||
bingdingLabel->setStyleSheet("QLabel{background-color:palette(button);border-radius: 4px}");
|
||||
|
||||
QToolButton *btn = new QToolButton(frame);
|
||||
btn->setAutoRaise(true);
|
||||
|
@ -282,6 +579,12 @@ void ShortcutUi::addCustomShortcut(KeyEntry keyEntry, KeyEntryList *systemEntryL
|
|||
|
||||
QString ShortcutUi::getShowShortcutString(QString src)
|
||||
{
|
||||
if (src.contains("Meta")) {
|
||||
src.replace("Meta", "Win");
|
||||
}
|
||||
if (src.contains("Start")) {
|
||||
src.replace("Start", "Win");
|
||||
}
|
||||
src.replace("<","");
|
||||
src.replace(">"," ");
|
||||
src.replace(" or ",tr(" or "));
|
||||
|
@ -289,15 +592,64 @@ QString ShortcutUi::getShowShortcutString(QString src)
|
|||
QString str;
|
||||
for(qint32 i = 0; i < temp_list.count(); i++) {
|
||||
str += temp_list.at(i)
|
||||
.left(1).toUpper() +
|
||||
temp_list.at(i)
|
||||
.mid(1, temp_list.at(i).length() - 1);
|
||||
.left(1).toUpper() +
|
||||
temp_list.at(i)
|
||||
.mid(1, temp_list.at(i).length() - 1);
|
||||
str += " ";
|
||||
}
|
||||
str.replace("Or","or");
|
||||
return str;
|
||||
}
|
||||
|
||||
QString ShortcutUi::keyToLib(QString key)
|
||||
{
|
||||
if (key.contains("Meta")) {
|
||||
key.replace("Meta", "Win");
|
||||
}
|
||||
|
||||
if (key.contains("Start")) {
|
||||
key.replace("Start", "Win");
|
||||
}
|
||||
|
||||
if (key.contains("Print", Qt::CaseInsensitive)) {
|
||||
key.replace("Print", "PrtSc", Qt::CaseInsensitive);
|
||||
}
|
||||
|
||||
if (key.contains("+")) {
|
||||
QStringList keys = key.split("+");
|
||||
if (keys.count() == 2) {
|
||||
QString lower = keys.at(1);
|
||||
QString keyToLib = "<" + keys.at(0) + ">" + lower.toLower();
|
||||
return keyToLib;
|
||||
} else if (keys.count() == 3) {
|
||||
QString lower = keys.at(2);
|
||||
QString keyToLib = "<" + keys.at(0) + ">" + "<" + keys.at(1) + ">" + lower.toLower();
|
||||
return keyToLib;
|
||||
} else if (keys.count() == 4) {
|
||||
QString lower = keys.at(3);
|
||||
QString keyToLib = "<" + keys.at(0) + ">" + "<" + keys.at(1) + ">" + "<" + keys.at(2) + ">" + lower.toLower();
|
||||
return keyToLib;
|
||||
}
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
QString ShortcutUi::conflictTip(const QString &key, const QString &value)
|
||||
{
|
||||
if (!value.isEmpty()) {
|
||||
return value;
|
||||
} else {
|
||||
QMap<QString, QString>::Iterator it;
|
||||
for (it = mAllKeyI18nName.begin(); it != mAllKeyI18nName.end(); it++) {
|
||||
qDebug() << Q_FUNC_INFO << it.key() << it.value();
|
||||
if (it.key() == key) {
|
||||
return it.value();
|
||||
}
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
void ShortcutUi::clearCustomShorcutFrame()
|
||||
{
|
||||
customShortcutGroup->removeAndDeleteAllWidget();
|
||||
|
|
|
@ -8,9 +8,11 @@
|
|||
#include "doubleclicklineedit.h"
|
||||
#include "clickfixlabel.h"
|
||||
#include "addshortcutdialog.h"
|
||||
|
||||
#include <QHBoxLayout>
|
||||
#include <QWidget>
|
||||
#include <QMenu>
|
||||
#include <QMessageBox>
|
||||
|
||||
class ShortcutUi : public QWidget
|
||||
{
|
||||
|
@ -18,7 +20,7 @@ class ShortcutUi : public QWidget
|
|||
public:
|
||||
ShortcutUi();
|
||||
~ShortcutUi();
|
||||
void addSystemShortcut(const QString &name, const QString &shortcut);
|
||||
void addSystemShortcut(const QString &name, const QString &shortcut, const QString &mediaKey, KeyEntryList *systemEntryList, KeyEntryList *customEntryList);
|
||||
void addCustomShortcut(KeyEntry keyEntry, KeyEntryList *systemEntryList, KeyEntryList *customEntryList);
|
||||
void clearCustomShorcutFrame();
|
||||
|
||||
|
@ -26,8 +28,11 @@ private:
|
|||
void initUi();
|
||||
void initSystem();
|
||||
void initCustom();
|
||||
QString getShowShortcutString(QString src);
|
||||
void updateGeneralShort(DoubleClickShortCut *shortCutEdit, QString key, QString value, bool isConflict);
|
||||
|
||||
QString getShowShortcutString(QString src);
|
||||
QString keyToLib(QString key);
|
||||
QString conflictTip(const QString &key, const QString &value);
|
||||
private:
|
||||
QVBoxLayout *uiLayout = nullptr;
|
||||
QVBoxLayout *systemLayout = nullptr;
|
||||
|
@ -42,10 +47,22 @@ private:
|
|||
SettingGroup *customShortcutGroup = nullptr;
|
||||
AddButton *addButton = nullptr;
|
||||
|
||||
QList<KeyEntry> mSystemEntryList;
|
||||
QList<KeyEntry> mCustomEntryList;
|
||||
|
||||
QList<DoubleClickShortCut *> mGeneralLineEdit;
|
||||
QList<ClickFixLabel *> mGeneralName;
|
||||
QList<DoubleClickShortCut *> mCustomLineEdit;
|
||||
QList<ClickFixLabel *> mCustomName;
|
||||
|
||||
QMap<QString, QString> mAllKeyI18nName;
|
||||
|
||||
Q_SIGNALS:
|
||||
void deleteShortcut(const QString &path);
|
||||
void toCreateShortcut(QString path, QString name, QString exec, QString key, bool buildFlag = true, bool convertFlag = true);
|
||||
void addButtonClicked();
|
||||
void updateSystemShortcut(const QString &key, const QString &value);
|
||||
void updateCustomShortcut(const QByteArray &path, const QString &key, const QString &value);
|
||||
};
|
||||
|
||||
#endif // SHORTCUTUI_H
|
||||
|
|
|
@ -5,6 +5,7 @@ const QDBusArgument &operator<<(QDBusArgument &argument, const QStringPair &stri
|
|||
argument.beginStructure();
|
||||
argument << string.name;
|
||||
argument << string.key;
|
||||
argument << string.mediaKey;
|
||||
argument.endStructure();
|
||||
return argument;
|
||||
}
|
||||
|
@ -14,6 +15,7 @@ const QDBusArgument &operator>>(const QDBusArgument &argument, QStringPair &stri
|
|||
argument.beginStructure();
|
||||
argument >> string.name;
|
||||
argument >> string.key;
|
||||
argument >> string.mediaKey;
|
||||
argument.endStructure();
|
||||
return argument;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ typedef struct _KeyEntry {
|
|||
QString bindingStr;
|
||||
QString actionStr;
|
||||
}KeyEntry;
|
||||
|
||||
const QDBusArgument &operator<<(QDBusArgument &argument, const KeyEntry &key);
|
||||
const QDBusArgument &operator>>(const QDBusArgument &argument, KeyEntry &key);
|
||||
Q_DECLARE_METATYPE(KeyEntry)
|
||||
|
@ -22,6 +23,7 @@ typedef struct
|
|||
{
|
||||
QString name;
|
||||
QString key;
|
||||
QString mediaKey;
|
||||
}QStringPair;
|
||||
|
||||
const QDBusArgument &operator<<(QDBusArgument &argument, const QStringPair &string);
|
||||
|
|
|
@ -181,6 +181,7 @@ void Fonts::setupConnect(){
|
|||
connect(ui->resetBtn, &QPushButton::clicked, [=](bool checked){
|
||||
Q_UNUSED(checked)
|
||||
resetDefault();
|
||||
UkccCommon::buriedSettings(name(), "reset defautl font", QString("clicked"));
|
||||
});
|
||||
|
||||
// 监听系统字体的变化
|
||||
|
|
|
@ -138,6 +138,7 @@ void Screenlock::connectUiSignals()
|
|||
connect(screenlockui, &ScreenlockUi::showOnLoginChanged, this, [=](bool b){
|
||||
toChangeKey = "showOnLogin";
|
||||
screenlockInterface->call("setShowOnLogin", b);
|
||||
UkccCommon::buriedSettings(name(), QString("Show picture of screenlock on screenlogin"), QString("settings"), UkccCommon::boolToString(b));
|
||||
});
|
||||
connect(screenlockui, &ScreenlockUi::pictureChanged, this, [=](QString file){
|
||||
toChangeKey = "wallpaper";
|
||||
|
@ -152,6 +153,7 @@ void Screenlock::connectUiSignals()
|
|||
});
|
||||
connect(screenlockui, &ScreenlockUi::resetButtonClicked, this, [=](){
|
||||
screenlockInterface->call("resetDefault");
|
||||
UkccCommon::buriedSettings(name(), QString("resetBtn"), QString("clicked"));
|
||||
});
|
||||
connect(screenlockui, &ScreenlockUi::toSetMonitor, this, [=](){
|
||||
UkccCommon::buriedSettings(name(), "setBtn(Monitor Off)", QString("clicked"));
|
||||
|
|
|
@ -452,6 +452,7 @@ void Theme::initControlTheme()
|
|||
qtSettings->set(COLOR_QT_KEY, value);
|
||||
revokeGlobalThemeSlot("getQtAccentRole", value);
|
||||
qApp->setStyle(new InternalStyle("ukui"));
|
||||
UkccCommon::buriedSettings(name(), "set accent color", QString("settings"), value);
|
||||
});
|
||||
it++;
|
||||
}
|
||||
|
@ -606,12 +607,12 @@ void Theme::initJumpTheme()
|
|||
ui->jumpLyt->addWidget(mRelatedGroup);
|
||||
|
||||
connect(mWallWidget, &PushButtonWidget::clicked, this, [=]{
|
||||
UkccCommon::buriedSettings(name(), mBeepWidget->objectName(), QString("clicked"));
|
||||
UkccCommon::buriedSettings(name(), "set wallpaper", QString("clicked"));
|
||||
jumpFunctionSlot("wallpaper");
|
||||
});
|
||||
|
||||
connect(mBeepWidget, &PushButtonWidget::clicked, this, [=]{
|
||||
UkccCommon::buriedSettings(name(), mBeepWidget->objectName(), QString("clicked"));
|
||||
UkccCommon::buriedSettings(name(), "set beep", QString("clicked"));
|
||||
jumpFunctionSlot("audio");
|
||||
});
|
||||
}
|
||||
|
|
|
@ -247,10 +247,16 @@ void About::setupSerialComponent()
|
|||
void About::setVersionNumCompenent()
|
||||
{
|
||||
QStringList list = mAboutDBus->property("build").toStringList();
|
||||
mAboutWidget->getBuild()->setText(list.at(0));
|
||||
mAboutWidget->getPatchVersion()->setText(list.at(1));
|
||||
mAboutWidget->getBuildFrame()->setHidden(mAboutWidget->getBuild()->text().isEmpty());
|
||||
mAboutWidget->getPatchFrame()->setHidden(mAboutWidget->getPatchVersion()->text().isEmpty());
|
||||
QString build = list.at(0);
|
||||
QString pversion = list.at(1);
|
||||
if (build.isEmpty() || build.contains("null"))
|
||||
mAboutWidget->getBuildFrame()->setHidden(true);
|
||||
else
|
||||
mAboutWidget->getBuild()->setText(build);
|
||||
if (pversion.isEmpty() || pversion.contains("null"))
|
||||
mAboutWidget->getPatchFrame()->setHidden(true);
|
||||
else
|
||||
mAboutWidget->getPatchVersion()->setText(pversion);
|
||||
}
|
||||
|
||||
/* 获取logo图片和版本名称 */
|
||||
|
@ -411,7 +417,10 @@ void About::setupDiskCompenet()
|
|||
|
||||
void About::setHostNameCompenet()
|
||||
{
|
||||
mAboutWidget->getHostName()->setText(UkccCommon::getHostName());
|
||||
if (UkccCommon::getHostName().isEmpty())
|
||||
mAboutWidget->getHostName()->setHidden(true);
|
||||
else
|
||||
mAboutWidget->getHostName()->setText(UkccCommon::getHostName());
|
||||
}
|
||||
|
||||
void About::setPrivacyCompent()
|
||||
|
@ -713,7 +722,10 @@ void About::changedSlot()
|
|||
"org.freedesktop.Accounts.User",
|
||||
QDBusConnection::systemBus());
|
||||
QString userName = userInterface->property("RealName").value<QString>();
|
||||
mAboutWidget->getUserName()->setText(userName);
|
||||
if (userName.isEmpty())
|
||||
mAboutWidget->getUserName()->setHidden(true);
|
||||
else
|
||||
mAboutWidget->getUserName()->setText(userName);
|
||||
}
|
||||
|
||||
void About::openIntelSlot(const QString &desktopFile)
|
||||
|
|
|
@ -18,6 +18,9 @@ TARGET = $$qtLibraryTarget(about)
|
|||
DESTDIR = ../..
|
||||
target.path = $${PLUGIN_INSTALL_DIRS}
|
||||
|
||||
protocol.files += res/*.txt
|
||||
protocol.path = /usr/share/protocol
|
||||
|
||||
INCLUDEPATH += \
|
||||
$$PROJECT_ROOTDIR \
|
||||
|
||||
|
@ -45,4 +48,5 @@ FORMS +=
|
|||
RESOURCES += \
|
||||
res/img.qrc
|
||||
|
||||
INSTALLS += target
|
||||
INSTALLS += target \
|
||||
protocol
|
||||
|
|
|
@ -184,6 +184,7 @@ QFrame *AboutUi::createFrame(FixLabel *label_1, LightLabel *label_2, LightLabel
|
|||
label_1->setFixedSize(180,30);
|
||||
|
||||
label_2->setTextInteractionFlags(Qt::TextSelectableByMouse);
|
||||
label_2->setCursor(Qt::IBeamCursor);
|
||||
label_2->setFixedHeight(30);
|
||||
|
||||
layout->addWidget(label_1);
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
#include "HpQRCodeInterface.h"
|
||||
#include "ukcccommon.h"
|
||||
using namespace ukcc;
|
||||
#include "hostnamedialog.h"
|
||||
#include "privacydialog.h"
|
||||
#include "statusdialog.h"
|
||||
|
@ -18,7 +17,10 @@ using namespace ukcc;
|
|||
#include "kswitchbutton.h"
|
||||
#include <kysdk/kysdk-system/libkysysinfo.h>
|
||||
#include <kborderlessbutton.h>
|
||||
|
||||
using namespace ukcc;
|
||||
using namespace kdk;
|
||||
|
||||
class AboutUi : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
|
|
@ -18,281 +18,17 @@ PrivacyDialog::~PrivacyDialog()
|
|||
|
||||
void PrivacyDialog::initUi()
|
||||
{
|
||||
this->resize(560 , 560);
|
||||
this->resize(560, 560);
|
||||
QVBoxLayout *mverticalLayout = new QVBoxLayout(this);
|
||||
mverticalLayout->setSpacing(8);
|
||||
mverticalLayout->setContentsMargins(24, 0, 24, 24);
|
||||
|
||||
QLabel *mTitleLabel = new QLabel(QString(tr("End User License Agreement and Privacy Policy Statement of Kylin")) , this);
|
||||
QLabel *mTitleLabel = new QLabel(getProtocolTitle(), this);
|
||||
mTitleLabel->setAlignment(Qt::AlignCenter);
|
||||
mverticalLayout->addWidget(mTitleLabel);
|
||||
QTextBrowser *mContentLabel = new QTextBrowser(this);
|
||||
// 协议内容
|
||||
QString mContent = tr("Dear users of Kylin operating system and relevant products, \n"
|
||||
" This agreement describes your rights, obligations and prerequisites for your use of this product. Please read the clauses of the Agreement and the "
|
||||
"supplementary license (hereinafter collectively referred to as “the Agreement”) and the privacy policy statement for Kylin operating system (hereinaft"
|
||||
"er referred to as “the Statement”).\n"
|
||||
" “This product” in the Agreement and the Statement refers to “Kylin operating system software product” developed, produced and released by Kylinso"
|
||||
"ft Co., Ltd. and used for handling the office work or building the information infrastructure for enterprises and governments. “We” refers to Kylinsoft C"
|
||||
"o., Ltd. “You” refers to the users who pay the license fee and use the Kylin operating system and relevant products.\n\n"
|
||||
"End User License Agreement of Kylin \n"
|
||||
"Release date of the version: July 30, 2021\n"
|
||||
"Effective date of the version: July 30, 2021\n"
|
||||
" The Agreement shall include the following content:\n"
|
||||
" I. User license \n"
|
||||
" II. Java technology limitations\n"
|
||||
" III. Cookies and other technologies\n"
|
||||
" IV. Intellectual property clause\n"
|
||||
" V. Open source code\n"
|
||||
" VI. The third-party software/services\n"
|
||||
" VII. Escape clause\n"
|
||||
" VIII. Integrity and severability of the Agreement\n"
|
||||
" IX. Applicable law and dispute settlement\n\n"
|
||||
" I. User license\n"
|
||||
" According to the number of users who have paid for this product and the types of computer hardware, we shall grant the non-exclusive and non-transfer"
|
||||
"able license to you, and shall only allow the licensed unit and the employees signing the labor contracts with the unit to use the attached software (hereinaf"
|
||||
"ter referred to as “the Software”) and documents as well as any error correction provided by Kylinsoft.\n"
|
||||
" 1. User license for educational institutions\n"
|
||||
" In the case of observing the clauses and conditions of the Agreement, if you are an educational institution, your institution shall be allowed to use the attach"
|
||||
"ed unmodified binary format software and only for internal use. “For internal use” here refers to that the licensed unit and the employees signing the labor c"
|
||||
"ontracts with the unit as well as the students enrolled by your institution can use this product.\n"
|
||||
" 2. Use of the font software\n"
|
||||
" Font software refers to the software pre-installed in the product and generating font styles. You cannot separate the font software from the Software and cannot"
|
||||
" modify the font software in an attempt to add any function that such font software, as a part of this product, does not have when it is delivered to you, or you ca"
|
||||
"nnot embed the font software in the files provided as a commercial product for any fee or other remuneration, or cannot use it in equipment where this product "
|
||||
"is not installed. If you use the font software for other commercial purposes such as external publicity, please contact and negotiate with the font copyright manu"
|
||||
"facture to obtain the permissions for your relevant acts.\n\n"
|
||||
" II. Java technology limitations\n"
|
||||
" You cannot change the “Java Platform Interface” (referred to as “JPI”, that is, the classes in the “java” package or any sub-package of the “java” package),"
|
||||
" whether by creating additional classes in JPI or by other means to add or change the classes in JPI. If you create an additional class as well as one or multiple"
|
||||
" relevant APIs, and they (i) expand the functions of Java platform; And (ii) may be used by the third-party software developers to develop additional software "
|
||||
"that may call the above additional APIs, you must immediately publish the accurate description of such APIs widely for free use by all developers. You cannot"
|
||||
" create or authorize other licensees to create additional classes, interfaces or sub-packages marked as “java”, “javax” and “sun” in any way, or similar agreem"
|
||||
"ents specified by Sun in any naming agreements. See the appropriate version of the Java Runtime Environment Binary Code License (located at http://jdk.ja"
|
||||
"va.net at present) to understand the availability of runtime code jointly distributed with Java mini programs and applications.\n\n"
|
||||
" III. Cookies and other technologies\n"
|
||||
" In order to help us better understand and serve the users, our website, online services and applications may use the “Cookie” technology. Such Cookies"
|
||||
" are used to store the network traffic entering and exiting the system and the traffic generated due to detection errors, so they must be set. We shall underst"
|
||||
"and how you interact with our website and online services by using such Cookies.\n"
|
||||
" If you want to disable the Cookie and use the Firefox browser, you may set it in Privacy and Security Center of Firefox. If your use other browsers, please"
|
||||
" consult the specific schemes from the relevant suppliers.\n"
|
||||
" In accordance with Article 76, paragraph 5 of the Network Security Law of the People's Republic of China, personal information refers to all kinds of infor"
|
||||
"mation recorded in electronic or other ways, which can identify the natural persons’ personal identity separately or combined with other information, inclu"
|
||||
"ding but not limited to the natural person’s name, date of birth, identity certificate number, personal biological identification information, address and telep"
|
||||
"hone number, etc. If Cookies contain the above information, or the combined information of non-personal information and other personal information colle"
|
||||
"cted through Cookie, for the purpose of this privacy policy, we shall regard the combined information as personal privacy information, and shall provide the "
|
||||
"corresponding security protection measures for your personal information by referring to Kylin Privacy Policy Statement.\n\n"
|
||||
" IV. Intellectual property clause\n"
|
||||
" 1. Trademarks and Logos\n"
|
||||
" This product shall be protected by the copyright law, trademark law and other laws and international intellectual property conventions. Title to the pro"
|
||||
"duct and all associated intellectual property rights are retained by us or its licensors. No right, title or interest in any trademark, service mark, logo or trade "
|
||||
"name of us or its licensors is granted under the Agreement. Any use of Kylinsoft marked by you shall be in favor of Kylinsoft, and without our consent, you "
|
||||
"shall not arbitrarily use any trademark or sign of Kylinsoft.\n"
|
||||
" 2. Duplication, modification and distribution\n"
|
||||
" If the Agreement remains valid for all duplicates, you may and must duplicate, modify and distribute software observing GNU GPL-GNU General Public"
|
||||
" License agreement among the Kylin operating system software products in accordance with GNU GPL-GNU General Public License, and must duplicate, m"
|
||||
"odify and distribute other Kylin operating system software products not observing GNU GPL-GNU General Public License agreement in accordance with rel"
|
||||
"evant laws and other license agreements, but no derivative release version based on the Kylin operating system software products can use any of our trad"
|
||||
"emarks or any other signs without our written consent.\n"
|
||||
" Special notes: Such duplication, modification and distribution shall not include any software, to which GNU GPL-GNU General Public License does not "
|
||||
"apply, in this product, such as the software store, input method software, font library software and third-party applications contained by the Kylin operati"
|
||||
"ng system software products. You shall not duplicate, modify (including decompilation or reverse engineering) or distribute the above software unless pro"
|
||||
"hibited by applicable laws.\n\n"
|
||||
" V. Open source code\n"
|
||||
" For any open source codes contained in this product, any clause of the Agreement shall not limit, constrain or otherwise influence any of your correspo"
|
||||
"nding rights or obligations under any applicable open source code license or all kinds of conditions you shall observe.\n\n"
|
||||
" VI. The third-party software/services\n"
|
||||
" The third-party software/services referred to in the Agreement refer to relevant software/services developed by other organizations or individuals other"
|
||||
" than the Kylin operating system manufacturer. This product may contain or be bundled with the third-party software/services to which the separate license"
|
||||
" agreements are attached. When you use any third-party software/services with separate license agreements, you shall be bound by such separate license "
|
||||
"agreements.\n"
|
||||
" We shall not have any right to control the third-party software/services in these products and shall not expressly or implicitly ensure or guarantee the "
|
||||
"legality, accuracy, effectiveness or security of the acts of their providers or users.\n\n"
|
||||
" VII. Escape clause\n"
|
||||
" 1. Limited warranty\n"
|
||||
" We guarantee to you that within ninety (90) days from the date when you purchase or obtain this product in other legal ways (subject to the date of the"
|
||||
" sales contract), the storage medium (if any) of this product shall not be involved in any defects in materials or technology when it is normally used. All co"
|
||||
"mpensation available to you and our entire liability under this limited warranty will be for us to choose to replace this product media or refund the fee paid"
|
||||
" for this product.\n"
|
||||
" 2. Disclaimer\n"
|
||||
" In addition to the above limited warranty, the Software is provided “as is” without any express or implied condition statement and warranty, including"
|
||||
" any implied warranty of merchantability, suitability for a particular purpose or non-infringement, except that this disclaimer is deemed to be legally invalid.\n"
|
||||
" 3. Limitation of responsibility\n"
|
||||
" To the extent permitted by law, under any circumstances, no matter what theory of liability is adopted, no matter how it is caused, for any loss of income,"
|
||||
" profit or data caused by or related to the use or inability to use the Software, or for special indirect consequential incidental or punitive damages, neither we"
|
||||
" nor its licensors shall be liable (even if we have been informed of the possibility of such damages). According to the Agreement, in any case, whether in contr"
|
||||
"act tort (including negligence) or otherwise, our liability to you will not exceed the amount you pay for the Software. The above limitations will apply even if "
|
||||
"the above warranty fails of its essential purpose.\n\n"
|
||||
" VIII.Integrity and severability of the Agreement\n"
|
||||
" 1. The integrity of the Agreement\n"
|
||||
" The Agreement is an entire agreement on the product use concluded by us with you. It shall replace all oral or written contact information, suggestions,"
|
||||
" representations and guarantees inconsistent with the Agreement previous or in the same period. During the period of the Agreement, in case of any confli"
|
||||
"ct clauses or additional clauses in the relevant quotations, orders or receipts or in other correspondences regarding the content of the Agreement betwee"
|
||||
"n the parties, the Agreement shall prevail. No modification of the Agreement will be binding, unless in writing and signed by an authorized representativ"
|
||||
"e of each party.\n"
|
||||
" 2. Severability of the Agreement\n"
|
||||
" If any provision of the Agreement is deemed to be unenforceable, the deletion of the corresponding provision will still be effective, unless the deletion"
|
||||
" will hinder the realization of the fundamental purpose of the parties (in which case, the Agreement will be terminated immediately).\n\n"
|
||||
" IX. Applicable law and dispute settlement\n"
|
||||
" 1. Application of governing laws\n"
|
||||
" Any dispute settlement (including but not limited to litigation and arbitration) related to the Agreement shall be governed by the laws of the People’s"
|
||||
" Republic of China. The legal rules of any other countries and regions shall not apply.\n"
|
||||
" 2. Termination\n"
|
||||
" If the Software becomes or, in the opinion of either party, may become the subject of any claim for intellectual property infringement, either party "
|
||||
"may terminate the Agreement immediately.\n"
|
||||
" The Agreement is effective until termination. You may terminate the Agreement at any time, but you must destroy all originals and duplicates of the"
|
||||
" Software. The Agreement will terminate immediately without notice from us if you fail to comply with any provision of the Agreement. At the time of te"
|
||||
"rmination, you must destroy all originals and duplicates of such software, and shall be legally liable for not observing the Agreement.\n"
|
||||
" The Agreement shall be in both Chinese and English, and in case of ambiguity between any content above, the Chinese version shall prevail.\n\n"
|
||||
" Privacy Policy Statement of Kylin Operating System/n"
|
||||
" Release date of the version: July 30, 2021\n"
|
||||
" Effective date of the version: July 30, 2021\n\n"
|
||||
" We attach great importance to personal information and privacy protection. In order to guarantee the legal, reasonable and appropriate collection, "
|
||||
"storage and use of your personal privacy information and the transmission and storage in the safe and controllable circumstances, we hereby formulate "
|
||||
"this Statement. We shall provide your personal information with corresponding security protection measures according to the legal requirements and "
|
||||
"mature security standards in the industry.\n\n"
|
||||
" The Statement shall include the following content:\n"
|
||||
" I. Collection and use your personal information\n"
|
||||
" II. How to store and protect your personal information\n"
|
||||
" III. How to manage your personal information\n"
|
||||
" IV. Privacy of the third-party software/services\n"
|
||||
" V. Minors’ use of the products\n"
|
||||
" VI. How to update this Statement\n"
|
||||
" VII. How to contact us\n\n"
|
||||
" I. How to collect and use your personal information\n"
|
||||
" 1. The collection of personal information\n"
|
||||
" We shall collect the relevant information when you use this product mainly to provide you with higher-quality products, more usability and better "
|
||||
"services. Part of information collected shall be provided by you directly, and other information shall be collected by us through your interaction with "
|
||||
"the product as well as your use and experience of the product. We shall not actively collect and deal with your personal information unless we have "
|
||||
"obtained your express consent according to the applicable legal stipulations.\n"
|
||||
" 1) The licensing mechanism for this product allows you to apply for the formal license of the product in accordance with the contract and relevant"
|
||||
" agreements after you send a machine code to the commercial personnel of Kylinsoft, and the machine code is generated through encryption and conv"
|
||||
"ersion according to the information of the computer used by you, such as network card, firmware and motherboard. This machine code shall not direc"
|
||||
"tly contain the specific information of the equipment, such as network card, firmware and motherboard, of the computer used by you.\n"
|
||||
" 2) Server of the software store of this product shall connect it according to the CPU type information and IP address of the computer used by you;"
|
||||
" at the same time, we shall collect the relevant information of your use of the software store of this product, including but not limited to the time of op"
|
||||
"ening the software store, interaction between the pages, search content and downloaded content. The relevant information collected is generally reco"
|
||||
"rded in the log of server system of software store, and the specific storage position may change due to different service scenarios.\n"
|
||||
" 3) Upgrading and updating of this product shall be connected according to the IP address of the computer used by you, so that you can upgrade "
|
||||
"and update the system;\n"
|
||||
" 4) Your personal information, such as E-mail address, telephone number and name, shall be collected due to business contacts and technical se"
|
||||
"rvices.\n"
|
||||
" 5) The biological characteristic management tool support system components of this product shall use the biological characteristics for authenti"
|
||||
"cation, including fingerprint, finger vein, iris and voiceprint. The biological characteristic information input by you shall be stored in the local computer, "
|
||||
"and for such part of information, we shall only receive the verification results but shall not collect or upload it. If you do not need to use the biological"
|
||||
" characteristics for the system authentication, you may disable this function in the biological characteristic management tool.\n"
|
||||
" 6) This product shall provide the recording function. When you use the recording function of this product, we shall only store the audio content"
|
||||
" when you use the recording in the local computer but shall not collect or upload the content.\n"
|
||||
" 7) The service and support functions of this product shall collect the information provided by you for us, such as log, E-mail, telephone and name,"
|
||||
" so as to make it convenient to provide the technical services, and we shall properly keep your personal information.\n"
|
||||
" 8) In the upgrading process of this product, if we need to collect additional personal information of yours, we shall timely update this part of content.\n"
|
||||
" 2. Use of personal information\n"
|
||||
" We shall strictly observe the stipulations of laws and regulations and agreements with you to use the information collected for the following purpos"
|
||||
"es. In case of exceeding the scope of following purposes, we shall explain to you again and obtain your consent.\n"
|
||||
" 1) The needs such as product licensing mechanism, use of software store, system updating and maintenance, biological identification and online"
|
||||
" services shall be involved;\n"
|
||||
" 2) We shall utilize the relevant information to assist in promoting the product security, reliability and sustainable service;\n"
|
||||
" 3) We shall directly utilize the information collected (such as the E-mail address and telephone provided by you) to communicate with you directl"
|
||||
"y, for example, business contact, technical support or follow-up service visit;\n"
|
||||
" 4) We shall utilize the data collected to improve the current usability of the product, promote the product’s user experience (such as the personali"
|
||||
"zed recommendation of software store) and repair the product defects, etc.;\n"
|
||||
" 5) We shall use the user behavior data collected for data analysis. For example, we shall use the information collected to analyze and form the urban"
|
||||
" thermodynamic chart or industrial insight report excluding any personal information. We may make the information excluding identity identification"
|
||||
" content upon the statistics and processing public and share it with our partners, to understand how the users use our services or make the public under"
|
||||
"stand the overall use trend of our services;\n"
|
||||
" 6) We may use your relevant information and provide you with the advertising more related to you on relevant websites and in applications and"
|
||||
"other channels;\n"
|
||||
" 7) In order to follow the relevant requirements of relevant laws and regulations, departmental regulations and rules and governmental instructions.\n"
|
||||
" 3. Information sharing and provision\n"
|
||||
" We shall not share or transfer your personal information to any third party, except for the following circumstances:\n"
|
||||
" 1) After obtaining your clear consent, we shall share your personal information with the third parities;\n"
|
||||
" 2) In order to achieve the purpose of external processing, we may share your personal information with the related companies or other third-party"
|
||||
" partners (the third-party service providers, contractors, agents and application developers). We shall protect your information security by means like "
|
||||
"encryption and anonymization;\n"
|
||||
" 3) We shall not publicly disclose the personal information collected. If we must disclose it publicly, we shall notify you of the purpose of such publi"
|
||||
"c disclosure, type of information disclosed and the sensitive information that may be involved, and obtain your consent;\n"
|
||||
" 4) With the continuous development of our business, we may carry out the transactions, such as merger, acquisition and asset transfer, and we shall"
|
||||
" notify you of the relevant circumstances, and continue to protect or require the new controller to continue to protect your personal information accord"
|
||||
"ing to laws and regulations and the standards no lower than that required by this Statement;\n"
|
||||
" 5) If we use your personal information beyond the purpose claimed at the time of collection and the directly or reasonably associated scope, we"
|
||||
" shall notify you again and obtain your consent before using your personal information.\n"
|
||||
" 4. Exceptions with authorized consent\n"
|
||||
" 1) It is directly related to national security, national defense security and other national interests; \n"
|
||||
" 2) It is directly related to public safety, public health and public knowledge and other major public interests; \n"
|
||||
" 3) It is directly related to crime investigation, prosecution, judgment and execution of judgment; \n"
|
||||
" 4) It aims to safeguard the life, property and other major legal rights and interests of you or others but it is impossible to obtain your own consent; \n"
|
||||
" 5) The personal information collected is disclosed to the public by yourself; \n"
|
||||
" 6) Personal information collected from legally publicly disclosed information, such as legal news reports, government information disclosure and "
|
||||
"other channels; \n"
|
||||
" 7) It is necessary to sign and perform of the contract according to your requirement; \n"
|
||||
" 8) It is necessary to maintain the safe and stable operation of the provided products or services, including finding and handling any fault of products "
|
||||
"or services;\n"
|
||||
" 9) It is necessary to carry out statistical or academic research for public interest, and when the results of academic research or description are provid"
|
||||
"ed, the personal information contained in the results is de-identified;\n"
|
||||
" 10) Other circumstances specified in the laws and regulations.\n\n"
|
||||
" II. How to store and protect personal information\n"
|
||||
" 1. Information storage place\n"
|
||||
" We shall store the personal information collected and generated in China within the territory of China in accordance with laws and regulations.\n"
|
||||
" 2. Information storage duration \n"
|
||||
" Generally speaking, we shall retain your personal information for the time necessary to achieve the purpose or for the shortest term stipulated by"
|
||||
" laws and regulations. Information recorded in the log shall be kept for a specified period and be automatically deleted according to the configuration.\n"
|
||||
" When operation of our product or services stops, we shall notify you in the forms such as notification and announcement, delete your personal inf"
|
||||
"ormation or conduct anonymization within a reasonable period and immediately stop the activities collecting the personal information.\n"
|
||||
" 3. How to protect the information\n"
|
||||
" We shall strive to provide guarantee for the users’ information security, to prevent the loss, improper use, unauthorized access or disclosure of the "
|
||||
"information.\n"
|
||||
" We shall use the security protection measures within the reasonable security level to protect the information security. For example, we shall protect"
|
||||
" your system account and password by means like encryption.\n"
|
||||
" We shall establish the special management systems, processes and organizations to protect the information security. For example, we shall strictly "
|
||||
"restrict the scope of personnel who access to the information, and require them to observe the confidentiality obligation.\n"
|
||||
" 4. Emergency response plan\n"
|
||||
" In case of security incidents, such as personal information disclosure, we shall start the emergency response plan according to law, to prevent the "
|
||||
"security incidents from spreading, and shall notify you of the situation of the security incidents, the possible influence of the incidents on you and the"
|
||||
" remedial measures we will take, in the form of pushing the notifications and announcements. We will also report the disposition of the personal infor"
|
||||
"mation security events according to the laws, regulations and regulatory requirements.\n\n"
|
||||
" III. How to manage your personal information\n"
|
||||
" If you worry about the personal information disclosure caused by using this product, you may consider suspending or not using the relevant functions"
|
||||
" involving the personal information, such as the formal license of the product, application store, system updating and upgrading and biological identif"
|
||||
"ication, according to the personal and business needs. \n"
|
||||
" Please pay attention to the personal privacy protection at the time of using the third-party software/services in this product.\n\n"
|
||||
" IV. Privacy of the third-party software/services\n\n"
|
||||
" The third-party software/services referred to in the Agreement refer to relevant software/services developed by other organizations or individuals "
|
||||
"other than the Kylin operating system manufacturer.\n"
|
||||
" When you install or use the third-party software/services in this product, the privacy protection and legal responsibility of the third-party software"
|
||||
"/services shall be independently borne by the third-party software/services. Please carefully read and examine the privacy statement or clauses corre"
|
||||
"sponding to the third-party software/services, and pay attention to the personal privacy protection.\n\n"
|
||||
" V. Minors’ use of the products\n"
|
||||
" If you are a minor, you shall obtain your guardian’s consent on your use of this product and the relevant service clauses. Except for the information"
|
||||
" required by the product, we shall not deliberately require the minors to provide more data. With the guardians’ consent or authorization, the accounts"
|
||||
" created by the minors shall be deemed to be the same as any other accounts. We have formulated special information processing rules to protect the"
|
||||
" personal information security of minors using this product. The guardians shall also take the appropriate preventive measures to protect the minors"
|
||||
" and supervise their use of this product.\n\n"
|
||||
" VI. How to update this Statement\n"
|
||||
" We may update this Statement at any time, and shall display the updated statement to you through the product installation process or the compa"
|
||||
"ny’s website at the time of updating. After such updates take effect, if you use such services or any software permitted according to such clauses, you"
|
||||
" shall be deemed to agree on the new clauses. If you disagree on the new clauses, then you must stop using this product, and please close the account"
|
||||
"created by you in this product; if you are a guardian, please help your minor child to close the account created by him/her in this product.\n\n"
|
||||
" VII. How to contact us\n"
|
||||
" If you have any question, or any complaints or opinions on this Statement, you may seek advice through our customer service hotline 400-089-18"
|
||||
"70, or the official website (www.kylinos.cn), or “service and support” application in this product. You may also contact us by E-mail (market@kylinos."
|
||||
"cn). \n"
|
||||
" We shall timely and properly deal with them. Generally, a reply will be made within 15 working days.\n"
|
||||
" The Statement shall take effect from the date of updating. The Statement shall be in Chinese and English at the same time and in case of any am"
|
||||
"biguity of any clause above, the Chinese version shall prevail.\n"
|
||||
" Last date of updating: November 1, 2021\n\n"
|
||||
"Address:\n"
|
||||
" Building 3, Xin’an Entrepreneurship Plaza, Tanggu Marine Science and Technology Park, Binhai High-tech Zone, Tianjin (300450)\n"
|
||||
" Silver Valley Tower, No. 9, North Forth Ring West Road, Haidian District, Beijing (100190)\n"
|
||||
" Building T3, Fuxing World Financial Center, No. 303, Section 1 of Furong Middle Road, Kaifu District, Changsha City (410000)\n"
|
||||
" Digital Entertainment Building, No. 1028, Panyu Road, Xuhui District, Shanghai (200030)\n"
|
||||
"Tel.:\n"
|
||||
" Tianjin (022) 58955650 Beijing (010) 51659955\n"
|
||||
" Changsha (0731) 88280170 Shanghai (021) 51098866\n"
|
||||
"Fax:\n"
|
||||
" Tianjin (022) 58955651 Beijing (010) 62800607\n"
|
||||
" Changsha (0731) 88280166 Shanghai (021) 51062866\n\n"
|
||||
" Company website: www.kylinos.cn\n"
|
||||
" E-mail: support@kylinos.cn");
|
||||
QString mContent = getEnduserAgreement();
|
||||
mContentLabel->setText(mContent);
|
||||
mverticalLayout->addWidget(mContentLabel);
|
||||
QLabel *label_1 = new QLabel(QString(tr("Kylinsoft Co., Ltd.")) , this);
|
||||
|
@ -300,10 +36,41 @@ void PrivacyDialog::initUi()
|
|||
mverticalLayout->addWidget(label_1);
|
||||
}
|
||||
|
||||
QString PrivacyDialog::getEnduserAgreement()
|
||||
{
|
||||
QString agreementPath = endUserAgreementSP1;
|
||||
if (UkccCommon::isOpenkylin()) {
|
||||
agreementPath = endUserAgreementOK;
|
||||
}
|
||||
const QString protocol = getLicenseText(agreementPath);
|
||||
return protocol;
|
||||
}
|
||||
|
||||
QString PrivacyDialog::getLicenseText(const QString &filePath)
|
||||
{
|
||||
QFile license(getLicensePath(filePath));
|
||||
if (!license.open(QIODevice::ReadOnly)) return QString();
|
||||
const QByteArray buf = license.readAll();
|
||||
license.close();
|
||||
return buf;
|
||||
}
|
||||
|
||||
QString PrivacyDialog::getLicensePath(const QString &filePath)
|
||||
{
|
||||
const QString &local {QLocale::system().name()};
|
||||
QString path = QString(filePath).arg(local);
|
||||
|
||||
if (QFile::exists(path)) {
|
||||
return path;
|
||||
} else {
|
||||
return QString(filePath).arg("en_US");;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
QString PrivacyDialog::getProtocolTitle()
|
||||
{
|
||||
if (UkccCommon::isOpenkylin()) {
|
||||
return QString(tr("End User License Agreement and Privacy Policy Statement of openKylin"));
|
||||
}
|
||||
return QString(tr("End User License Agreement and Privacy Policy Statement of Kylin"));
|
||||
}
|
||||
|
|
|
@ -1,11 +1,20 @@
|
|||
#ifndef PRIVACYDIALOG_H
|
||||
#define PRIVACYDIALOG_H
|
||||
|
||||
#include <QFile>
|
||||
#include <QObject>
|
||||
#include <QWidget>
|
||||
#include <QDialog>
|
||||
#include <QString>
|
||||
#include <QTextBrowser>
|
||||
|
||||
#include "titlelabel.h"
|
||||
#include "ukcccommon.h"
|
||||
|
||||
using namespace ukcc;
|
||||
|
||||
const static QString endUserAgreementSP1 = "/usr/share/protocol/Ukcc-Agreement-%1.txt";
|
||||
const static QString endUserAgreementOK = "/usr/share/protocol/Ukcc-Agreement-OK-%1.txt";
|
||||
|
||||
class PrivacyDialog : public QDialog
|
||||
{
|
||||
|
@ -16,6 +25,11 @@ public:
|
|||
private:
|
||||
void initUi();
|
||||
|
||||
QString getEnduserAgreement();
|
||||
QString getLicenseText(const QString &filePath);
|
||||
QString getLicensePath(const QString &filePath);
|
||||
QString getProtocolTitle();
|
||||
|
||||
};
|
||||
|
||||
#endif // PRIVACYDIALOG_H
|
||||
|
|
|
@ -0,0 +1,170 @@
|
|||
Dear users of Kylin operating system and relevant products,
|
||||
This agreement describes your rights, obligations and prerequisites for your use of this product. Please read the clauses of the Agreement and the supplementary license (hereinafter collectively referred to as “the Agreement”) and the privacy policy statement for Kylin operating system (hereinafter referred to as “the Statement”).
|
||||
“This product” in the Agreement and the Statement refers to “Kylin operating system software product” developed, produced and released by Kylinsoft Co., Ltd. and used for handling the office work or building the information infrastructure for enterprises and governments. “We” refers to Kylinsoft Co., Ltd. “You” refers to the users who pay the license fee and use the Kylin operating system and relevant products.
|
||||
|
||||
End User License Agreement of Kylin
|
||||
Release date of the version: July 30, 2021
|
||||
Effective date of the version: July 30, 2021
|
||||
The Agreement shall include the following content:
|
||||
I. User license
|
||||
II. Java technology limitations
|
||||
III. Cookies and other technologies
|
||||
IV. Intellectual property clause
|
||||
V. Open source code
|
||||
VI. The third-party software/services
|
||||
VII. Escape clause
|
||||
VIII. Integrity and severability of the Agreement
|
||||
IX. Applicable law and dispute settlement
|
||||
|
||||
I. User license
|
||||
According to the number of users who have paid for this product and the types of computer hardware, we shall grant the non-exclusive and non-transferable license to you, and shall only allow the licensed unit and the employees signing the labor contracts with the unit to use the attached software (hereinafter referred to as “the Software”) and documents as well as any error correction provided by Kylinsoft.
|
||||
1. User license for educational institutions
|
||||
In the case of observing the clauses and conditions of the Agreement, if you are an educational institution, your institution shall be allowed to use the attached unmodified binary format software and only for internal use. “For internal use” here refers to that the licensed unit and the employees signing the labor contracts with the unit as well as the students enrolled by your institution can use this product.
|
||||
2. Use of the font software
|
||||
Font software refers to the software pre-installed in the product and generating font styles. You cannot separate the font software from the Software and cannot modify the font software in an attempt to add any function that such font software, as a part of this product, does not have when it is delivered to you, or you cannot embed the font software in the files provided as a commercial product for any fee or other remuneration, or cannot use it in equipment where this product is not installed. If you use the font software for other commercial purposes such as external publicity, please contact and negotiate with the font copyright manufacture to obtain the permissions for your relevant acts.
|
||||
|
||||
II. Java technology limitations
|
||||
You cannot change the “Java Platform Interface” (referred to as “JPI”, that is, the classes in the “java” package or any sub-package of the “java” package), whether by creating additional classes in JPI or by other means to add or change the classes in JPI. If you create an additional class as well as one or multiple relevant APIs, and they (i) expand the functions of Java platform; And (ii) may be used by the third-party software developers to develop additional software that may call the above additional APIs, you must immediately publish the accurate description of such APIs widely for free use by all developers. You cannot create or authorize other licensees to create additional classes, interfaces or sub-packages marked as “java”, “javax” and “sun” in any way, or similar agreements specified by Sun in any naming agreements. See the appropriate version of the Java Runtime Environment Binary Code License (located at http://jdk.java.net at present) to understand the availability of runtime code jointly distributed with Java mini programs and applications.
|
||||
|
||||
III. Cookies and other technologies
|
||||
In order to help us better understand and serve the users, our website, online services and applications may use the “Cookie” technology. Such Cookies are used to store the network traffic entering and exiting the system and the traffic generated due to detection errors, so they must be set. We shall understand how you interact with our website and online services by using such Cookies.
|
||||
If you want to disable the Cookie and use the Firefox browser, you may set it in Privacy and Security Center of Firefox. If your use other browsers, please consult the specific schemes from the relevant suppliers.
|
||||
In accordance with Article 76, paragraph 5 of the Network Security Law of the People's Republic of China, personal information refers to all kinds of information recorded in electronic or other ways, which can identify the natural persons’ personal identity separately or combined with other information, including but not limited to the natural person’s name, date of birth, identity certificate number, personal biological identification information, address and telephone number, etc. If Cookies contain the above information, or the combined information of non-personal information and other personal information collected through Cookie, for the purpose of this privacy policy, we shall regard the combined information as personal privacy information, and shall provide the corresponding security protection measures for your personal information by referring to Kylin Privacy Policy Statement.
|
||||
|
||||
IV. Intellectual property clause
|
||||
1. Trademarks and Logos
|
||||
This product shall be protected by the copyright law, trademark law and other laws and international intellectual property conventions. Title to the product and all associated intellectual property rights are retained by us or its licensors. No right, title or interest in any trademark, service mark, logo or trade name of us or its licensors is granted under the Agreement. Any use of Kylinsoft marked by you shall be in favor of Kylinsoft, and without our consent, you shall not arbitrarily use any trademark or sign of Kylinsoft.
|
||||
2. Duplication, modification and distribution
|
||||
If the Agreement remains valid for all duplicates, you may and must duplicate, modify and distribute software observing GNU GPL-GNU General Public License agreement among the Kylin operating system software products in accordance with GNU GPL-GNU General Public License, and must duplicate, modify and distribute other Kylin operating system software products not observing GNU GPL-GNU General Public License agreement in accordance with relevant laws and other license agreements, but no derivative release version based on the Kylin operating system software products can use any of our trademarks or any other signs without our written consent.
|
||||
Special notes: Such duplication, modification and distribution shall not include any software, to which GNU GPL-GNU General Public License does not apply, in this product, such as the software store, input method software, font library software and third-party applications contained by the Kylin operating system software products. You shall not duplicate, modify (including decompilation or reverse engineering) or distribute the above software unless prohibited by applicable laws.
|
||||
|
||||
V. Open source code
|
||||
For any open source codes contained in this product, any clause of the Agreement shall not limit, constrain or otherwise influence any of your corresponding rights or obligations under any applicable open source code license or all kinds of conditions you shall observe.
|
||||
|
||||
VI. The third-party software/services
|
||||
The third-party software/services referred to in the Agreement refer to relevant software/services developed by other organizations or individuals other than the Kylin operating system manufacturer. This product may contain or be bundled with the third-party software/services to which the separate license agreements are attached. When you use any third-party software/services with separate license agreements, you shall be bound by such separate license agreements.
|
||||
We shall not have any right to control the third-party software/services in these products and shall not expressly or implicitly ensure or guarantee the legality, accuracy, effectiveness or security of the acts of their providers or users.
|
||||
|
||||
VII. Escape clause
|
||||
1. Limited warranty
|
||||
We guarantee to you that within ninety (90) days from the date when you purchase or obtain this product in other legal ways (subject to the date of the sales contract), the storage medium (if any) of this product shall not be involved in any defects in materials or technology when it is normally used. All compensation available to you and our entire liability under this limited warranty will be for us to choose to replace this product media or refund the fee paid for this product.
|
||||
2. Disclaimer
|
||||
In addition to the above limited warranty, the Software is provided “as is” without any express or implied condition statement and warranty, including any implied warranty of merchantability, suitability for a particular purpose or non-infringement, except that this disclaimer is deemed to be legally invalid.
|
||||
3. Limitation of responsibility
|
||||
To the extent permitted by law, under any circumstances, no matter what theory of liability is adopted, no matter how it is caused, for any loss of income, profit or data caused by or related to the use or inability to use the Software, or for special indirect consequential incidental or punitive damages, neither we nor its licensors shall be liable (even if we have been informed of the possibility of such damages). According to the Agreement, in any case, whether in contract tort (including negligence) or otherwise, our liability to you will not exceed the amount you pay for the Software. The above limitations will apply even if the above warranty fails of its essential purpose.
|
||||
|
||||
VIII.Integrity and severability of the Agreement
|
||||
1. The integrity of the Agreement
|
||||
The Agreement is an entire agreement on the product use concluded by us with you. It shall replace all oral or written contact information, suggestions, representations and guarantees inconsistent with the Agreement previous or in the same period. During the period of the Agreement, in case of any conflict clauses or additional clauses in the relevant quotations, orders or receipts or in other correspondences regarding the content of the Agreement between the parties, the Agreement shall prevail. No modification of the Agreement will be binding, unless in writing and signed by an authorized representative of each party.
|
||||
2. Severability of the Agreement
|
||||
If any provision of the Agreement is deemed to be unenforceable, the deletion of the corresponding provision will still be effective, unless the deletion will hinder the realization of the fundamental purpose of the parties (in which case, the Agreement will be terminated immediately).
|
||||
|
||||
IX. Applicable law and dispute settlement
|
||||
1. Application of governing laws
|
||||
Any dispute settlement (including but not limited to litigation and arbitration) related to the Agreement shall be governed by the laws of the People’s Republic of China. The legal rules of any other countries and regions shall not apply.
|
||||
2. Termination
|
||||
If the Software becomes or, in the opinion of either party, may become the subject of any claim for intellectual property infringement, either party may terminate the Agreement immediately.
|
||||
The Agreement is effective until termination. You may terminate the Agreement at any time, but you must destroy all originals and duplicates of the Software. The Agreement will terminate immediately without notice from us if you fail to comply with any provision of the Agreement. At the time of termination, you must destroy all originals and duplicates of such software, and shall be legally liable for not observing the Agreement.
|
||||
The Agreement shall be in both Chinese and English, and in case of ambiguity between any content above, the Chinese version shall prevail.
|
||||
|
||||
Privacy Policy Statement of Kylin Operating System/n Release date of the version: July 30, 2021
|
||||
Effective date of the version: July 30, 2021
|
||||
|
||||
We attach great importance to personal information and privacy protection. In order to guarantee the legal, reasonable and appropriate collection, storage and use of your personal privacy information and the transmission and storage in the safe and controllable circumstances, we hereby formulate this Statement. We shall provide your personal information with corresponding security protection measures according to the legal requirements and mature security standards in the industry.
|
||||
|
||||
The Statement shall include the following content:
|
||||
I. Collection and use your personal information
|
||||
II. How to store and protect your personal information
|
||||
III. How to manage your personal information
|
||||
IV. Privacy of the third-party software/services
|
||||
V. Minors’ use of the products
|
||||
VI. How to update this Statement
|
||||
VII. How to contact us
|
||||
|
||||
I. How to collect and use your personal information
|
||||
1. The collection of personal information
|
||||
We shall collect the relevant information when you use this product mainly to provide you with higher-quality products, more usability and better services. Part of information collected shall be provided by you directly, and other information shall be collected by us through your interaction with the product as well as your use and experience of the product. We shall not actively collect and deal with your personal information unless we have obtained your express consent according to the applicable legal stipulations.
|
||||
1) The licensing mechanism for this product allows you to apply for the formal license of the product in accordance with the contract and relevant agreements after you send a machine code to the commercial personnel of Kylinsoft, and the machine code is generated through encryption and conversion according to the information of the computer used by you, such as network card, firmware and motherboard. This machine code shall not directly contain the specific information of the equipment, such as network card, firmware and motherboard, of the computer used by you.
|
||||
2) Server of the software store of this product shall connect it according to the CPU type information and IP address of the computer used by you; at the same time, we shall collect the relevant information of your use of the software store of this product, including but not limited to the time of opening the software store, interaction between the pages, search content and downloaded content. The relevant information collected is generally recorded in the log of server system of software store, and the specific storage position may change due to different service scenarios.
|
||||
3) Upgrading and updating of this product shall be connected according to the IP address of the computer used by you, so that you can upgrade and update the system;
|
||||
4) Your personal information, such as E-mail address, telephone number and name, shall be collected due to business contacts and technical services.
|
||||
5) The biological characteristic management tool support system components of this product shall use the biological characteristics for authentication, including fingerprint, finger vein, iris and voiceprint. The biological characteristic information input by you shall be stored in the local computer, and for such part of information, we shall only receive the verification results but shall not collect or upload it. If you do not need to use the biological characteristics for the system authentication, you may disable this function in the biological characteristic management tool.
|
||||
6) This product shall provide the recording function. When you use the recording function of this product, we shall only store the audio content when you use the recording in the local computer but shall not collect or upload the content.
|
||||
7) The service and support functions of this product shall collect the information provided by you for us, such as log, E-mail, telephone and name, so as to make it convenient to provide the technical services, and we shall properly keep your personal information.
|
||||
8) In the upgrading process of this product, if we need to collect additional personal information of yours, we shall timely update this part of content.
|
||||
2. Use of personal information
|
||||
We shall strictly observe the stipulations of laws and regulations and agreements with you to use the information collected for the following purposes. In case of exceeding the scope of following purposes, we shall explain to you again and obtain your consent.
|
||||
1) The needs such as product licensing mechanism, use of software store, system updating and maintenance, biological identification and online services shall be involved;
|
||||
2) We shall utilize the relevant information to assist in promoting the product security, reliability and sustainable service;
|
||||
3) We shall directly utilize the information collected (such as the E-mail address and telephone provided by you) to communicate with you directly, for example, business contact, technical support or follow-up service visit;
|
||||
4) We shall utilize the data collected to improve the current usability of the product, promote the product’s user experience (such as the personalized recommendation of software store) and repair the product defects, etc.;
|
||||
5) We shall use the user behavior data collected for data analysis. For example, we shall use the information collected to analyze and form the urban thermodynamic chart or industrial insight report excluding any personal information. We may make the information excluding identity identification content upon the statistics and processing public and share it with our partners, to understand how the users use our services or make the public understand the overall use trend of our services;
|
||||
6) We may use your relevant information and provide you with the advertising more related to you on relevant websites and in applications andother channels;
|
||||
7) In order to follow the relevant requirements of relevant laws and regulations, departmental regulations and rules and governmental instructions.
|
||||
3. Information sharing and provision
|
||||
We shall not share or transfer your personal information to any third party, except for the following circumstances:
|
||||
1) After obtaining your clear consent, we shall share your personal information with the third parities;
|
||||
2) In order to achieve the purpose of external processing, we may share your personal information with the related companies or other third-party partners (the third-party service providers, contractors, agents and application developers). We shall protect your information security by means like encryption and anonymization;
|
||||
3) We shall not publicly disclose the personal information collected. If we must disclose it publicly, we shall notify you of the purpose of such public disclosure, type of information disclosed and the sensitive information that may be involved, and obtain your consent;
|
||||
4) With the continuous development of our business, we may carry out the transactions, such as merger, acquisition and asset transfer, and we shall notify you of the relevant circumstances, and continue to protect or require the new controller to continue to protect your personal information according to laws and regulations and the standards no lower than that required by this Statement;
|
||||
5) If we use your personal information beyond the purpose claimed at the time of collection and the directly or reasonably associated scope, we shall notify you again and obtain your consent before using your personal information.
|
||||
4. Exceptions with authorized consent
|
||||
1) It is directly related to national security, national defense security and other national interests;
|
||||
2) It is directly related to public safety, public health and public knowledge and other major public interests;
|
||||
3) It is directly related to crime investigation, prosecution, judgment and execution of judgment;
|
||||
4) It aims to safeguard the life, property and other major legal rights and interests of you or others but it is impossible to obtain your own consent;
|
||||
5) The personal information collected is disclosed to the public by yourself;
|
||||
6) Personal information collected from legally publicly disclosed information, such as legal news reports, government information disclosure and other channels;
|
||||
7) It is necessary to sign and perform of the contract according to your requirement;
|
||||
8) It is necessary to maintain the safe and stable operation of the provided products or services, including finding and handling any fault of products or services;
|
||||
9) It is necessary to carry out statistical or academic research for public interest, and when the results of academic research or description are provided, the personal information contained in the results is de-identified;
|
||||
10) Other circumstances specified in the laws and regulations.
|
||||
|
||||
II. How to store and protect personal information
|
||||
1. Information storage place
|
||||
We shall store the personal information collected and generated in China within the territory of China in accordance with laws and regulations.
|
||||
2. Information storage duration
|
||||
Generally speaking, we shall retain your personal information for the time necessary to achieve the purpose or for the shortest term stipulated by laws and regulations. Information recorded in the log shall be kept for a specified period and be automatically deleted according to the configuration.
|
||||
When operation of our product or services stops, we shall notify you in the forms such as notification and announcement, delete your personal information or conduct anonymization within a reasonable period and immediately stop the activities collecting the personal information.
|
||||
3. How to protect the information
|
||||
We shall strive to provide guarantee for the users’ information security, to prevent the loss, improper use, unauthorized access or disclosure of the information.
|
||||
We shall use the security protection measures within the reasonable security level to protect the information security. For example, we shall protect your system account and password by means like encryption.
|
||||
We shall establish the special management systems, processes and organizations to protect the information security. For example, we shall strictly restrict the scope of personnel who access to the information, and require them to observe the confidentiality obligation.
|
||||
4. Emergency response plan
|
||||
In case of security incidents, such as personal information disclosure, we shall start the emergency response plan according to law, to prevent the security incidents from spreading, and shall notify you of the situation of the security incidents, the possible influence of the incidents on you and the remedial measures we will take, in the form of pushing the notifications and announcements. We will also report the disposition of the personal information security events according to the laws, regulations and regulatory requirements.
|
||||
|
||||
III. How to manage your personal information
|
||||
If you worry about the personal information disclosure caused by using this product, you may consider suspending or not using the relevant functions involving the personal information, such as the formal license of the product, application store, system updating and upgrading and biological identification, according to the personal and business needs.
|
||||
Please pay attention to the personal privacy protection at the time of using the third-party software/services in this product.
|
||||
|
||||
IV. Privacy of the third-party software/services
|
||||
|
||||
The third-party software/services referred to in the Agreement refer to relevant software/services developed by other organizations or individuals other than the Kylin operating system manufacturer.
|
||||
When you install or use the third-party software/services in this product, the privacy protection and legal responsibility of the third-party software/services shall be independently borne by the third-party software/services. Please carefully read and examine the privacy statement or clauses corresponding to the third-party software/services, and pay attention to the personal privacy protection.
|
||||
|
||||
V. Minors’ use of the products
|
||||
If you are a minor, you shall obtain your guardian’s consent on your use of this product and the relevant service clauses. Except for the information required by the product, we shall not deliberately require the minors to provide more data. With the guardians’ consent or authorization, the accounts created by the minors shall be deemed to be the same as any other accounts. We have formulated special information processing rules to protect the personal information security of minors using this product. The guardians shall also take the appropriate preventive measures to protect the minors and supervise their use of this product.
|
||||
|
||||
VI. How to update this Statement
|
||||
We may update this Statement at any time, and shall display the updated statement to you through the product installation process or the company’s website at the time of updating. After such updates take effect, if you use such services or any software permitted according to such clauses, you shall be deemed to agree on the new clauses. If you disagree on the new clauses, then you must stop using this product, and please close the accountcreated by you in this product; if you are a guardian, please help your minor child to close the account created by him/her in this product.
|
||||
|
||||
VII. How to contact us
|
||||
If you have any question, or any complaints or opinions on this Statement, you may seek advice through our customer service hotline 400-089-1870, or the official website (www.kylinos.cn), or “service and support” application in this product. You may also contact us by E-mail (market@kylinos.cn).
|
||||
We shall timely and properly deal with them. Generally, a reply will be made within 15 working days.
|
||||
The Statement shall take effect from the date of updating. The Statement shall be in Chinese and English at the same time and in case of any ambiguity of any clause above, the Chinese version shall prevail.
|
||||
Last date of updating: November 1, 2021
|
||||
|
||||
Address:
|
||||
Building 3, Xin’an Entrepreneurship Plaza, Tanggu Marine Science and Technology Park, Binhai High-tech Zone, Tianjin (300450)
|
||||
Silver Valley Tower, No. 9, North Forth Ring West Road, Haidian District, Beijing (100190)
|
||||
Building T3, Fuxing World Financial Center, No. 303, Section 1 of Furong Middle Road, Kaifu District, Changsha City (410000)
|
||||
Digital Entertainment Building, No. 1028, Panyu Road, Xuhui District, Shanghai (200030)
|
||||
Tel.:
|
||||
Tianjin (022) 58955650 Beijing (010) 51659955
|
||||
Changsha (0731) 88280170 Shanghai (021) 51098866
|
||||
Fax:
|
||||
Tianjin (022) 58955651 Beijing (010) 62800607
|
||||
Changsha (0731) 88280166 Shanghai (021) 51062866
|
||||
|
||||
Company website: www.kylinos.cn
|
||||
E-mail: support@kylinos.cn
|
|
@ -0,0 +1,152 @@
|
|||
openKylin个人信息保护及隐私政策声明
|
||||
|
||||
尊敬的openKylin用户:
|
||||
您的信任对我们非常重要。我们非常重视个人信息和隐私保护,为了保证合法、合理、适度的收集、存储、使用您的个人隐私信息,并在安全、可控的情况下进行传输、存储。鉴此,openKylin社区(简称“我们”)制定了《openKylin个人信息保护及隐私政策声明》(以下简称“本声明”),我们将会按照法律要求和业界成熟安全标准,为您的个人信息提供相应的安全保护措施。
|
||||
在向我们提交您的个人信息之前,请您仔细阅读本声明。如果您对于我们处理您个人信息的方式有任何疑问,欢迎与我们联系。
|
||||
本声明将帮助您了解以下内容:
|
||||
一、我们如何收集和使用您的个人信息
|
||||
二、我们如何共享、转让、公开披露您的个人信息
|
||||
三、我们如何保护您的个人信息
|
||||
四、我们如何管理您的个人信息
|
||||
五、您的权利
|
||||
六、我们如何使用Cookie和同类技术
|
||||
七、未成年人用户信息的特别约定
|
||||
八、本声明如何更新
|
||||
九、如何联系我们
|
||||
一、我们如何收集和使用您的个人信息
|
||||
在您使用openKylin操作系统产品的过程中,我们会收集您在使用服务时主动提供或因为服务而产生的信息。此类信息会在您注册和使用我们的服务时被收集,我们仅会出于本声明所述以下目的收集和使用您的个人信息。我们将逐一说明我们收集和使用您的个人信息类型及本声明中涉及的相关术语,以便您更好地理解个人信息的概况。
|
||||
1、收集个人信息情况
|
||||
openKylin系统(以下简称“本系统”)层面:
|
||||
1)本系统在安装/更新期间,可能会收集非个人身份识别的系统信息,如下:
|
||||
·更新系统需要收集:错误码、安装来源、安装包名、安装步骤、安装状态、错误详细信息、事务id、错误信息、上传类型。
|
||||
·安装系统需要收集:安装包旧版本号、错误码、安装包新版本号、安装包名、安装步骤、安装状态、错误详细信息。
|
||||
·更新软件包需要收集:错误代码、更新的包名、更新模式、更新步骤、升级状态。
|
||||
2)使用本系统的控制面板期间,在点击操作、点击首页操作、点击左侧面板操作、设置操作、选择操作、搜索操作、无搜索结果时,需要收集:插件名称、设置名、值信息。
|
||||
3)本系统的daq数据收集信息如下:
|
||||
重要硬件和软件信息:城市、国家、省份、cpu型号、显卡型号、网络类型、内核版本、厂商名、产品名、数据创建时间戳、数据上报时间戳、相同机器不同公共信息版本、dpkg版本、os发布id、os版本。
|
||||
·软件环境信息:libjpeg版本、cups版本、python2版本、java版本、python3版本、libjbig版本、libpng版本、机器id、gcc版本、内核版本、gdb版本、glibc版本、grub版本、daq版本、qt4版本、qt5版本
|
||||
·电脑在线信息:开机时间、关机时间、开机时间段、关机时间段、开机时间段(单位,秒)、开机时间段(单位,秒)
|
||||
4)本系统的开始菜单操作收集信息:模块名、错误输出、错误等级、功能计数、执行的功能。
|
||||
5)本系统的侧边栏操作收集信息:模块名、错误输出、错误等级、功能计数、执行的功能
|
||||
6)本系统的摄像头、手机助手、看图、打印、计算器、录音、字体预览器、显卡控制器、传书、服务与技术支持、网络检查工具、天气、管理、扫描、蓝牙等功能会收集对应的触发动作值、函数调用编号和信息。
|
||||
7)本系统的软件商店使用过程中,在如下操作中,需要收集的信息:
|
||||
·安装过程
|
||||
安装软件名、社区ID信息(需登录社区ID)
|
||||
·卸载过程
|
||||
卸载软件名、社区ID信息(需登录社区ID)
|
||||
·商店客户端启动
|
||||
启动时间、系统版本、商店版本
|
||||
·搜索操作
|
||||
搜索关键字、系统架构
|
||||
·广告操作(V4版本)
|
||||
广告名、广告曝光
|
||||
8)本系统录音功能,在使用本系统录音软件中,仅会将您使用录音时的音频内容存储在本地计算机中,不会进行收集和上传。
|
||||
以上本系统收集的相关信息一般会记录在其各功能对应的服务端系统的日志中,具体存储位置可能因为不同的服务场景有所变动。
|
||||
openKylin社区(以下简称“本社区”)层面:
|
||||
如果您仅仅浏览openKylin社区官网的一般性内容,我们通常并不要求您提供个人信息,但在以下情形,我们会相应收集您的个人信息:
|
||||
1)账号服务,本社区提供ID认证服务,以便提供统一的社区身份和权限,当您注册本社区账号的时候,我们将收集您的邮箱或手机号用于身份校验,收集您的Gitee账号用于社区代码托管平台的权限管理,我们还会使用您的个人信息识别您在社区的身份,并在此基础上进行数据统计,以使我们了解本社区的运行状况。
|
||||
2)贡献者协议签署,当您通过贡献者许可协议(简称“CLA”)签署系统参与代码贡献时,您需要向CLA签署系统提交您的相关个人信息,我们取得这些个人信息用于校验您是否已经签署CLA,并用于贡献统计分析,以生成社区数字看板。当您通过CLA签署系统将完成签署的CLA以pdf格式发送至 contact@openkylin.top 邮箱,我们会将包含您个人信息的CLA存档,作为您对您在本社区所贡献内容授予许可的凭证。如果您是个人或企业员工,我们从您通过邮件发送的CLA中收集您的码云(Gitee、Gitlink、Github)ID、姓名、电子邮件地址,用于校验您的码云(Gitee、Gitlink、Github)账户并与您联系;如果您代表企业签署CLA,我们从您通过邮件发送的CLA中收集您的姓名、职位、公司名称、邮箱,用于您所属的企业校验您的身份及与您联系等。
|
||||
3) 论坛服务,论坛服务为您提供下述业务功能,在您使用相关业务功能的过程中,我们会处理下列提供功能所必需的信息。若您不提供相关信息,会影响到您使用论坛服务的相关功能。
|
||||
·登录与身份认证:您可以使用本社区账号登录论坛服务,我们会使用您本社区账号的用户名、昵称、邮箱、微信扫描账号来认证您的身份、管理您的数据。
|
||||
·个人中心:登录后,我们将在“个人中心”页面展示您在本社区的账号用户名。 您还可以在“个人中心”页面设置在社区论坛使用的昵称、头像、签名,我们会存储并在“个人中心”展示。
|
||||
·信息发布与互动:“论坛服务”为您提供信息发布与互动服务,为此我们会收集并处理您所发布的内容、图片、音频、视频、文档以及评论、点赞、收藏、举报信息,同时会使用并展示您的昵称、头像。 为增强交流和互动,我们会统计和在“个人中心”页面展示您的帖子发布量、获赞量、粉丝数、关注数、收藏夹(收藏夹默认仅本人可见)。为了实时更新并向您展示以上信息,我们会收集使用您的发帖、评论、点赞、收藏以及关注列表、粉丝列表等信息。
|
||||
·产品运营与维护:为了给您提供更丰富的产品体验、改善产品的运营策略、保障产品稳定运行、以及根据法律法规的要求保障网络安全,我们会收集您的登录账号信息、设备的硬件信息、操作系统的设置信息、网络信息(例如IP地址)、运营商信息、您在本论坛的浏览或点击记录、论坛报错信息。
|
||||
4) 社区实习生/就业育人计划,本社区的实习生/就业育人的任务平台将以透明、安全和合规的方式收集、使用和管理个人信息,旨在提供优质的任务合作体验,同时保障您的隐私权益。您在使用平台时应仔细阅读和理解平台的隐私政策,并在必要时联系平台获取更多信息。若您不提供相关信息,会影响到您在领取各项任务时的相关功能权限:
|
||||
·任务发布: 如果您是企业身份,有权在任务平台上发布任务,需要您提供一些企业和个人信息,例如用户名、联系方式和任务详细说明等。这些信息用于任务发布和管理,以便与实习生或爱好者进行沟通和合作。
|
||||
·高校学生/爱好者/就业育人信息审核: 如果您申请成为实习生,平台会要求您提交个人简历、联系方式和相关证明材料。这些信息将用于审核实习申请,确保申请人的资格和合适性。
|
||||
·任务领取信息审核: 您申请参与特定任务时,平台会要求您提供个人信息和任务申请的相关背景、了解程度、方案思路、时间计划。这些信息用于评估申请人的适合度和能力。
|
||||
·任务成果信息审核: 您完成任务后,需要上传相关成果和报告。这些信息可能会包含您的工作成果和创意,用于审核任务的完成情况。
|
||||
·奖励和现金发放: 平台根据任务完成情况可能会给予您奖励,包括现金。在发放奖励和现金时,平台需要收集您的支付信息,例如银行账号、开户行支行等,以便顺利完成奖励发放流程。
|
||||
5) 邮件订阅,当您使用我们的邮件订阅服务时,我们将收集您的电子邮件地址。我们会通过该邮箱为您提供邮件订阅服务,便于您参与社区中的讨论。
|
||||
6) 内容发布,当您参加本社区会议、直播、博客、活动、开发者开源社区贡献时,您的用户名和您发布的信息将对本社区和公众可见;如果您是本社区的SIG成员:我们将要求您提交码云(Gitee、Gitlink、Github)信息,以便在我们的网站上发布。
|
||||
7) 快速提交issue,当您通过社区的小程序或者直接在Gitee平台上提交issue时,我们会收集您的账号、用户名、微信授权信息,issue成功创建后,我们会在该issue页面的描述信息展示您的用户信息。
|
||||
8) “麒麟杯”全国开源应用软件开发大赛,当您申请参加“麒麟杯”大赛,通过您主动填写的申请表,将会收集您的码云(Gitee、Gitlink、Github)信息、红山开源账号、社区ID、姓名、手机号、邮箱、您的作品信息。姓名、手机号、邮箱用于通知评选结果以及与您联系;如果您在大赛中取得了好的成绩,您的姓名将在官网予以公布。
|
||||
9) 服务优化,为持续了解本社区的运行状况,以便我们更好地为您服务,当您访问我们的网站时,我们会收集并记录您的IP地址、访问来源、访问社区的次数、停留时长、访问时间戳、浏览器类型、访问社区所用服务器类型版本以识别您在网站上的访客活动。我们可能会使用第三方Web分析工具(百度统计), 来捕获有关我们网站使用的信息,并在此基础上进行数据统计,以便我们了解本社区的运营状况。web分析工具的提供者通过Cookie和其他技术捕获有关您在我们网站上活动的数据,并以匿名的形式向我们提供此信息。任何网站用户都无法识别此信息。
|
||||
2、使用个人信息情况
|
||||
我们严格遵守法律法规的规定及与您的约定,将收集的信息用于以下用途。若我们超出以下用途,我们将再次向您进行说明,并征得您的同意。
|
||||
1)涉及系统软件商店使用、系统更新维护、生物识别、在线服务等需要;
|
||||
2)我们会利用相关信息协助提升系统和社区的安全性、可靠性和可持续服务;
|
||||
3)我们会利用收集的信息(例如您提供的电子邮件地址、电话等)直接与您沟通。例如,业务联系、技术支持或服务回访;
|
||||
4)我们会利用收集的数据改进产品当前的易用性、提升产品用户体验(例如软件商店的个性化推荐)以及修复产品缺陷等;
|
||||
5)我们会将所收集到的用户行为数据用于大数据分析。例如,我们将收集到的信息用于分析形成不包含任何个人信息的城市热力图或行业洞察报告。我们可能对外公开并与我们的合作伙伴分享经统计加工后不含身份识别内容的信息,用于了解用户如何使用我们服务或让公众了解我们服务的总体使用趋势;
|
||||
6)为了遵从相关法律法规、部门规章、政府指令的相关要求。
|
||||
二、我们如何共享、转让、公开披露您的个人信息
|
||||
我们不会共享或转让您的个人信息至第三方,但以下情况除外:
|
||||
1、获取您的单独明确同意后,我们会与第三方分享您的个人信息;
|
||||
2、为实现外部处理的目的,我们可能与关联公司或其他第三方合作伙伴(第三方服务供应商、承包商、代理、应用开发者等)分享您的个人信息。我们会征得您的明确同意,并将采用加密、匿名化处理等手段来保障您的信息安全;
|
||||
3、我们不会对外公开披露所收集的个人信息,如必须公开披露时,我们会向您告知此次公开披露的目的、披露信息的类型及可能涉及的敏感信息,并征得您的明确同意;
|
||||
4、随着我们业务的持续发展,我们有可能进行合并、收购、资产转让等交易,我们将告知相关情形,并征得您的明确同意,并按照法律法规及不低于本声明所要求的标准继续保护或要求新的控制者继续保护您的个人信息;
|
||||
5、如我们使用您的个人信息,超出了与收集时所声称的目的及具有直接或合理关联的范围,我们将在使用您的个人信息前,再次向您告知并征得您的明确同意。
|
||||
6、共享给业务合作伙伴。我们可能会向合作伙伴等第三方共享您的信息。但我们仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息,并且只会共享提供服务所必需的个人信息。我们的合作伙伴包括:
|
||||
1) 开发者,平台及社交媒体:某些产品或服务由第三方直接向您提供,我们须将交易相关信息共享给第三方来实现您的需求。例如,如果您通过激活或关联使得我们提供的服务或产品与第三方平台或社交媒体相关联(例如通过第三方网站直接登录、虚拟登录或关联登录),我们可能会根据您就此的授权将您的个人信息进行披露。我们不控制第三方对您个人信息的使用。
|
||||
2) 服务供应商或专业服务提供商:我们可能会将您的个人信息共享给按照我们指示进行服务或产品提供或支持我们网站运营的第三方,包括为我们供货或提供基础设施技术服务、托管、客户支持、市场推广和分析、信息处理服务的第三方等。我们共享这些信息的目的仅限于本声明披露或在您允许的范围内进行,比如百度。我们可能因获取专业服务,如审计、保险、金融或法律之目的,向相关专业人士共享您的个人信息。
|
||||
在我们根据上述内容向关联公司或合作伙伴共享信息时,我们将通过合同等方式规定其责任和义务,并要求他们采取必要措施保障所处理的个人信息的安全。
|
||||
7、征得授权同意的例外情况
|
||||
根据相关法律法规以及国家标准,在以下情况下我们可能会收集、使用您的个人信息无需征得您的授权同意:
|
||||
1)与国家安全、国防安全等国家利益直接相关的;
|
||||
2) 与公共安全、公共卫生、公众知情等重大社会公共利益直接相关的;
|
||||
3) 与犯罪侦查、起诉、审判和判决执行等有关的相关活动;
|
||||
4) 出于维护您或其他个人的生命、财产等重大合法权益但在紧急情况下所必须;
|
||||
5) 所收集的个人信息是您自行向社会公众公开的;
|
||||
6) 从合法公开披露的信息中收集的个人信息,如合法的新闻报道、政府信息公开等渠道;
|
||||
7) 根据您要求签订和履行合同所必需的;
|
||||
8) 用于维护所提供的产品或服务的安全稳定运行所必需的。如发现、处置产品或服务的故障;
|
||||
9) 出于公共利益开展统计或学术研究所必需,且其对外提供学术研究或描述的结果时,对结果中所包含的个人信息进行去标识化处理的;
|
||||
10) 法律法规规定的其他情形。
|
||||
三、我们如何保护您的个人信息
|
||||
1、信息存储的地点
|
||||
我们会按照法律法规规定,在中华人民共和国境内运营中收集和产生的个人信息,存储在中华人民共和国境内,如果未来为处理跨境业务,需要向境外机构传输境内收集的相关个人信息的,我们会征得您的单独同意,按照法律、行政法规和相关监管部门的规定执行,并通过签订协议、核查等有效措施,要求境外机构为所获得的个人信息采取相关保护措施。
|
||||
2、信息存储的期限
|
||||
一般而言,我们仅为实现目的所必需的时间或法律法规规定最短期限保留您的个人信息。记录在日志中的信息会按配置在一定期限保存及自动删除。
|
||||
当我们的系统或服务发生停止运营的情形时,我们将以通知、公告等形式通知您,在合理的期限内删除您的个人信息或进行匿名化处理,并立即停止收集个人信息的活动。
|
||||
在您主动注销账号时,我们将根据法律法规的要求进行数据处理。
|
||||
3、我们如何保护这些信息
|
||||
我们会采取一切合理可行的措施,确保未收集与我们提供的服务无关的个人信息。我们努力为用户的信息安全提供保障,以防止信息的丢失、不当使用、未经授权访问或披露。
|
||||
我们将在合理的安全水平内使用安全保护措施以保障信息的安全。例如,我们会使用加密技术等手段来保护您的系统级账户密码。
|
||||
我们建立专门的管理制度、流程和组织以保障信息的安全。例如,我们严格限制访问信息的人员范围,要求他们遵守保密义务。
|
||||
4、应急预案
|
||||
若发生个人信息泄露等安全事件,我们会依法启动应急预案,阻止安全事件扩大,并以推送通知、公告等形式告知您安全事件的情况、事件可能对您的影响以及我们将采取的补救措施。我们还将按照法律法规和监管部门要求,上报个人信息安全事件的处置情况。
|
||||
四、我们如何管理您的个人信息
|
||||
我们会遵守各地区法律法规的规定,采取一切合理可行的措施,确保未收集无关的个人信息。
|
||||
您的系统和社区账号基本信息包括但不限于您的个人手机号码将加密传输并保存在服务器中,直至账号注销。我们只会在达成本声明所述目的所必需的最短期限内保留您的个人信息,若存储时间如超出法律的允许范围,我们将进行删除或匿名化处理,若删除相关个人信息从技术上难以实现的,我们将停止除存储和采取必要的安全保护措施之外的处理。但在下列情况下,我们有可能因需符合法律要求,更改个人信息的存储时间:
|
||||
为遵守法院判决、裁定或其他法律程序的规定;
|
||||
为遵守相关政府机关或法定授权组织的要求;
|
||||
我们有理由确信需要遵守法律法规等有关规定。
|
||||
当本服务发生停止运营的情形时,我们将及时停止继续收集您的个人信息,将停止运营的通知以逐一送达或公告的形式通知您,并在合理的期限内删除或匿名化处理您的个人信息。
|
||||
我们通过交互界面的设计,为您提供了可自行访问、获取、更正和删除相关个人信息的渠道,您可通过以下方式进行设置:
|
||||
如果担心因使用系统和访问服务导致个人信息的泄露,您可根据个人及业务需要考虑暂停或不使用涉及个人信息的相关功能,如系统软件商店、系统更新升级、生物识别等。
|
||||
在使用系统之上的第三方软件/服务时,请注意个人隐私保护。
|
||||
在一些业务功能中,我们可能仅依据信息系统、算法在内的非人工自动决策机制作出决定。如果这些决定显著影响您的合法权益,您有权要求我们作出解释,我们也将提供适当的解决方式。
|
||||
如您确有必要访问、修改或依法要求删除该类信息,请将您的问题通过邮件发送至指定的联系邮箱(见文末),我们将尽快审核所涉问题,并在核验您的用户身份后及时予以回复。
|
||||
您可以通过指定的联系邮箱(见文末),提交账号注销申请;在您主动注销账号后,您的个人信息及相关内容将会隐藏、移除或匿名化,但法律法规另有规定的除外。
|
||||
五、您的权利
|
||||
按照各地区相关的法律、法规、标准,以及各地区的通行做法,我们将尽最大努力采取适当的技术手段,保障您对自己的个人信息行使以下权利:
|
||||
如果您希望查阅、复制、更正您的账号的个人基本信息(如用户名、昵称等)或撤回您对个人信息使用权的同意,您可以在社区账号注册网站(id.openkylin.top)登录您的账号,通过“个人中心”执行前述操作。
|
||||
您有权通过本隐私政策公布的联系方式向我们发出书面请求以获取您的个人信息副本。在符合国家网信部门规定条件的且技术可行的前提下,例如数据接口匹配,我们还可按您的要求和现有的通行技术,直接将您的个人信息副本传输给您指定的第三方。若因该等第三方拒绝接收您的个人信息副本而导致传输失败的,您应自行与该等第三方进行协调解决,我们对此不承担任何责任。
|
||||
如果您无法通过上述方式实现您的个人信息权利或某些特殊信息的个人权利行使可能无法自行操作,您可以随时通过本隐私政策或相关产品或服务页面上公布的联系方式联系我们。我们将在十五个工作日内回复您的请求。为保障您的个人信息安全,我们可能会要求您进行身份验证。
|
||||
请您注意,请核对您提交的个人信息的真实、及时、完整和准确,否则会导致我们无法与您进行有效联系、无法向您提供部分服务。若我们有合理理由怀疑您提供的资料发生错误、不完整、不真实,我们有权向您询问或通知您改正,甚至暂停或中止对您提供部分服务。
|
||||
请您注意,当我们决定响应您撤销同意或删除个人信息的请求后,我们将不再处理相应的个人信息,我们还将同时尽可能通知从我们分享获得您的个人信息的第三方,要求该等第三方及时删除您的个人信息,除非法律法规另有规定,或该等第三方已获得您的独立授权。但您撤销同意的决定,不会影响此前基于您的授权而开展的个人信息处理的合法性。若法律、行政法规规定的保存期限未届满,或者删除个人信息从技术上难以实现的,我们将停止除存储和采取必要的安全保护措施之外的处理。
|
||||
对于您合理的请求,我们原则上不收取费用,但对多次重复、超出合理限度的请求,我们将视情收取一定成本费用。对于那些无端重复、需要过多技术手段(例如,需要开发新系统或从根本上改变现行惯例)、给他人合法权益带来风险或者非常不切实际(例如,涉及备份磁盘上存放的信息)的请求,我们可能会予以拒绝。
|
||||
在以下情形中,按照法律法规要求,我们将无法响应您的请求:
|
||||
·与我们履行法律法规规定的义务相关的;
|
||||
·与国家安全、国防安全直接相关的;与公共安全、公共卫生、重大公共利益直接相关的;
|
||||
·与刑事侦查、起诉、审判和判决执行等直接相关的;
|
||||
·有充分证据表明您存在主观恶意或滥用权利的;
|
||||
·响应您的请求将导致您或其他个人、组织的合法权益受到严重损害的。
|
||||
·涉及商业秘密的;
|
||||
·出于维护您或其他个人的生命、财产等重大合法权益但又很难得到您本人同意的;
|
||||
·其他适用法律规定的情形。
|
||||
六、我们如何使用Cookie和同类技术
|
||||
为帮助我们更好地了解并服务用户,我们的网站、在线服务和应用程序可能会使用“Cookie”技术。这些Cookie用于存储进出系统的网络流量以及因检测错误而生成的流量,因此必须设置。 我们通过使用这些Cookie来了解您与我们的网站和在线服务如何进行交互。
|
||||
如果您想禁用 Cookie 并且使用的是Firefox浏览器,可在Firefox的隐私与安全中心进行设置。如果您使用的是其他浏览器,请向相关供应商咨询具体方案。
|
||||
依照《中华人民共和国网络安全法》第七十六条第五款,个人信息,是指以电子或者其他方式记录的能够单独或者与其他信息结合识别自然人个人身份的各种信息,包括但不限于自然人的姓名、出生日期、身份证件号码、个人生物识别信息、住址、电话号码等。如果Cookie中包含上述信息,或者存在通过Cookie收集的非个人信息与其他个人信息合并后的信息,出于本隐私政策的目的,我们会将合并后的信息视为个人隐私信息,将参照《openKylin个人信息保护及隐私政策声明》,为您的个人信息提供相应的安全保护措施。
|
||||
七、未成年人用户信息的特别约定
|
||||
如果您是未成年人,根据相关法律法规的规定:
|
||||
1、如果没有父母或监护人的同意,未成年人不得创建自己的用户账号使用openKylin操作系统系列产品。如您为未成年人,建议您请您的父母或监护人仔细阅读本政策,并在征得您的父母或监护人同意的前提下使用我们的服务或向我们提供信息。
|
||||
2、对于经父母或监护人同意使用我们的产品或服务而收集未成年人个人信息的情况,我们只会在法律法规允许、父母或监护人明确同意或者保护未成年人所必要的情况下使用、共享、转让或披露此信息。
|
||||
3、监护人也应采取适当的预防措施保护未成年人,监督其对本产品的使用。
|
||||
八、本声明如何更新及适用范围
|
||||
我们可能会随时更新本声明,并且会在变更时通过系统安装过程或公司网站向您展示变更后的声明。在这些变更生效后使用服务或根据这些条款授予许可的任何软件,即表示您同意新的条款。如果您不同意新的条款,则必须停止使用本系统,请关闭您在本系统之上创建的账户;如果您是监护人,请帮助您的未成年子女关闭他或她在本产品之上创建的账户。
|
||||
我们的所有服务均适用本声明。但某些服务有其特定的个人信息和隐私政策,该等特定的个人信息和隐私政策更具体地说明我们在该服务中如何处理您的信息。如本声明与特定服务的个人信息和隐私政策有不一致之处,请以该特定政策为准。
|
||||
九、如何联系我们
|
||||
如果您想联系我们或行使您的相关权利,请通过以下方式与我们联系: contact@openkylin.top
|
|
@ -0,0 +1,32 @@
|
|||
ཅིན་ལིན་གྱི་བཀོལ་སྤྱོད་མ་ལག་དང་འབྲེལ་ཡོད་ཐོན་རྫས་ཀྱི་སྙིང་ཉེ་བའི་སྤྱོད་མཁན།
|
||||
གྲོས་མཐུན་འདིས་ཁྱེད་ཚོས་ཐོན་རྫས་འདི་བཀོལ་སྤྱོད་བྱེད་པའི་ཁེ་དབང་དང་། འོས་འགན། སྔོན་འགྲོའི་ཆ་རྐྱེན་བཅས་གསལ་བཤད་བྱས་ཡོད། ཁྱེད་ཀྱིས་གྲོས་མཐུན་གྱི་དོན་ཚན་དང་ཁ་གསབ་ཆོག་འཐུས་ལག་ཁྱེར་(གཤམ་དུ་ཐུན་མོང་དུ་"གྲོས་མཐུན་"ཞེས་འབོད་པ་)དང་ཁེ་ལིན་གྱི་བཀོལ་སྤྱོད་མ་ལག་གི་གསང་བའི་སྲིད་ཇུས་གསལ་བསྒྲགས་(གཤམ་དུ་"གསལ་བསྒྲགས་"ཞེས་འབོད་རྒྱུ་)ཀློག་རོགས།
|
||||
《ཆོད་ཡིག་》དང་《གསལ་བསྒྲགས་》ནང་གི་"ཐོན་རྫས་འདི་"ཞེས་པ་ནི་ཁེ་ལིན་སའོ་ཧྥུ་མ་རྐང་ཚད་ཡོད་ཀུང་སིས་གསར་སྤེལ་དང་། ཐོན་སྐྱེད། ཁྱབ་བསྒྲགས་བཅས་བྱས་པའི་"ཁེ་ལིན་གྱི་བཀོལ་སྤྱོད་མ་ལག་གི་མཉེན་ཆས་ཐོན་རྫས་"ལ་ཟེར། "ང་ཚོ་"ཞེས་པ་ནི་ཁེ་ལིན་སའོ་ཧྥུ་མ་རྐང་ཚད་ཡོད་ཀུང་སིའི་"ཁྱོད་"ཞེས་པ་ནི་ཁེ་ལིན་གྱི་བཀོལ་སྤྱོད་མ་ལག་དང་འབྲེལ་ཡོད་ཐོན་རྫས་བེད་སྤྱོད་བྱེད་མཁན་ལ་ཟེར།
|
||||
|
||||
ཅིན་ལིན་གྱི་སྤྱོད་མཁན་གྱི་ཆོག་འཐུས་གྲོས་མཐུན་མཇུག་བསྒྲིལ
|
||||
པར་གཞི་ཁྱབ་བསྒྲགས་བྱས་པའི་ཚེས་གྲངས། 2021ལོའི་ཟླ་7ཚེས་30ཉིན།
|
||||
པར་གཞི་འདི་ལག་བསྟར་བྱེད་པའི་དུས་ཚོད། 2021ལོའི་ཟླ་7ཚེས་30ཉིན།
|
||||
གྲོས་མཐུན་ནང་གཤམ་གསལ་གྱི་ནང་དོན་ཚུད་དགོས་པ་སྟེ།
|
||||
I. སྤྱོད་མཁན་གྱི་ལག་ཁྱེར།
|
||||
II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
||||
གསུམ། བག་ལེབ་ཀོར་མོ་སོགས་ཀྱི་ལག་རྩལ།
|
||||
IV.ཤེས་བྱའི་ཐོན་དངོས་བདག་དབང་གི་དོན་ཚན།
|
||||
V. སྒོ་འབྱེད་འབྱུང་ཁུངས་ཀྱི་ཚབ་རྟགས
|
||||
དྲུག་པ། ཕྱོགས་གསུམ་པའི་མཉེན་ཆས་དང་ཞབས་ཞུ།
|
||||
བདུན། བྲོས་བྱོལ་དུ་སོང་བའི་དོན་ཚན།
|
||||
བརྒྱད། གྲོས་མཐུན་གྱི་ཁ་དན་ཚིག་གནས་རང་བཞིན་དང་ཚབས་ཆེའི་རང་བཞིན།
|
||||
IX.བཅའ་ཁྲིམས་སྤྱད་འཐུས་པ་དང་རྩོད་གཞི་ཐག་གཅོད་བྱ་དགོས།
|
||||
|
||||
I. སྤྱོད་མཁན་གྱི་ལག་ཁྱེར།
|
||||
ཐོན་རྫས་འདི་དང་རྩིས་འཁོར་གྱི་མཁྲེགས་ཆས་རིགས་ལ་རིན་དོད་སྤྲད་ཟིན་པའི་སྤྱོད་མཁན་གྱི་མི་གྲངས་དང་རྩིས་འཁོར་གྱི་མཁྲེགས་ཆས་རིགས་ལ་གཞིགས་ནས་ང་ཚོས་ཁྱོད་ལ་ཕྱིར་འབུད་དང་སྤོ་སྒྱུར་བྱས་མི་ཆོག་པའི་ལག་ཁྱེར་སྤྲོད་དགོས་
|
||||
1.སློབ་གསོའི་ལས་ཁུངས་ཀྱི་སྤྱོད་མཁན་གྱི་ལག་ཁྱེར།
|
||||
གྲོས་མཐུན་གྱི་དོན་ཚན་དང་ཆ་རྐྱེན་ལ་བརྩི་སྲུང་བྱེད་སྐབས་གལ་ཏེ་ཁྱོད་ནི་སློབ་གསོའི་ལས་ཁུངས་ཡིན་ན། ཁྱོད་ཀྱི་ལས་ཁུངས་ཀྱིས་ཟུར་བཀོད་བྱས་མེད་པའི་རྒྱུ་གཉིས་རྣམ་གཞག་གི་མཉེན་ཆས་སྤྱད་དེ་ནང་ཁུལ་དུ་སྤྱོད་དུ་འཇུག་དགོས། འདིར་བཤད་པའི་"ནང་ཁུལ་དུ་སྤྱོད་རྒྱུ་"ཞེས་པ་ནི་ཆོག་མཆན་ཐོབ་པའི་སྡེ་ཚན་དང་སྡེ་ཚན་དེ་གའི་ངལ་རྩོལ་གན་རྒྱ་འཇོག་མཁན་ལས་བཟོ་པ་དང་དེ་བཞིན་ཁྱེད་ཚོའི་ལས་ཁུངས་ཀྱིས་བསྡུ་ལེན་བྱས་པའི་སློབ་མས་ཐོན་རྫས་འདི་བེད་སྤྱོད་བྱས་ཆོག་པར་ཟེར
|
||||
2.ཡིག་གཟུགས་མཉེན་ཆས་བཀོལ་སྤྱོད་བྱེད་པ།
|
||||
ཡིག་གཟུགས་མཉེན་ཆས་ཞེས་པ་ནི་ཐོན་རྫས་ནང་སྔོན་ཚུད་ནས་སྒྲིག་སྦྱོར་བྱས་པའི་མཉེན་ཆས་དང་ཡིག་གཟུགས་ཀྱི་རྣམ་པ་ཐོན་སྐྱེད་བྱེད་པར་ཟེར། ཁྱེད་ཚོས་ཡིག་གཟུགས་མཉེན་ཆས་དང་མཉེན་ཆས་ལོགས་སུ་འབྱེད་མི་ཐུབ་པ་དང་། ཡིག་གཟུགས་མཉེན་ཆས་བཟོ་བཅོས་རྒྱག་མི་ཐུབ་པས། ཡིག་གཟུགས་མཉེན་ཆས་དེ་རིགས་ཐོན་རྫས་འདིའི་ཆ་ཤས་ཤིག་ཡིན་པའི་ཆ་ནས་ཁྱེད་ཚོར་སྤྲད་པའི་དུས་སུ་མེད་པའམ་ཡང་ན་རིན་དོད། ཡང་ན་ཐོན་རྫས་དེ་རིགས་སྒྲིག་སྦྱོར་བྱས་མེད་པའི་སྒྲིག་ཆས་ནང་བེད་སྤྱོད་བྱེད་མི་རུང་། གལ་ཏེ་ཡིག་གཟུགས་མཉེན་ཆས་སྤྱད་དེ་ཕྱི་ཕྱོགས་ལ་དྲིལ་བསྒྲགས་བྱེད་པ་སོགས་ཚོང་ལས་ཀྱི་ཆེད་དུ་ཡིན་ན། ཡིག་གཟུགས་པར་དབང་བཟོ་མཁན་དང་འབྲེལ་གཏུག་དང་གྲོས་མོལ་བྱས་ནས་འབྲེལ་ཡོད་བྱ་སྤྱོད་ཀྱི་ཆོག་མཆན་ཐོབ་རོགས།
|
||||
|
||||
II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
||||
JPIནང་དུ་ཁ་སྣོན་བྱས་པའི་འཛིན་གྲྭ་གསར་སྐྲུན་བྱེད་པའམ་ཡང་ན་བྱེད་ཐབས་གཞན་དག་སྤྱད་དེ་JPIནང་གི་འཛིན་གྲྭ་ཁ་སྣོན་དང་བསྒྱུར་བཅོས་བྱེད་པ་གང་ཡིན་རུང་"Java ལས་སྟེགས་མཐུད་ཁ་"("JPI"ཞེས་འབོད་པ་)བསྒྱུར་མི་རུང་། གལ་ཏེ་ཁྱོད་ཀྱིས་ཟུར་སྣོན་རིགས་ཤིག་གསར་སྐྲུན་བྱས་པ་མ་ཟད། ད་དུང་འབྲེལ་ཡོད་ཀྱི་APIsགཉིས་གསར་སྐྲུན་བྱས་ན། དེ་དག་(i)Javaསྟེགས་བུའི་ནུས་པ་རྒྱ་བསྐྱེད་པ་དང་། (གཉིས། )ཕྱོགས་གསུམ་པའི་མཉེན་ཆས་གསར་སྤེལ་བྱེད་མཁན་གྱིས་གོང་གསལ་གྱི་ཟུར་སྣོན་APIsཞེས་འབོད་སྲིད་པའི་ཟུར་སྣོན་མཉེན་ཆས་གསར་སྤེལ་བྱས་ཆོག་པས། ཁྱེད་ཚོས་ངེས་པར་དུ་འཕྲལ་མར་གསར་སྤེལ་ཚོང་པ་ཚང་མས་ཡོངས་ཁྱབ་ཏུ་APIsདེ་རིགས་རྒྱ་ཁྱབ་ཏུ་ཁྱབ། ཁྱེད་ཚོས་ཆོག་འཐུས་ལག་ཁྱེར་གཞན་དག་གསར་སྐྲུན་དང་དབང་ཆ་བསྐུར་ནས་བྱེད་སྟངས་གང་རུང་གི་ཐོག་ནས་"java"དང་། "javax"། "sun"བཅས་སུ་རྟགས་བརྒྱབ་པའི་འཛིན་གྲྭ་དང་། འབྲེལ་མཐུད། ཡན་ལག་ཁུག་མ་བཅས་གསར་སྐྲུན་བྱེད་མི་ཐུབ་པའམ་ཡང་ན་དབང་ཆ། Javaའཁོར་སྐྱོད་སྐབས་ཀྱི་ཁོར་ཡུག་གཉིས་གོང་འགྲིལ་ལུགས་ཚབ་ཨང་ཆོག་འཐུས་ལག་ཁྱེར་(མིག་སྔར་http://jdk.java.net་གནས་ཡོད་)ཡི་འོས་འཚམ་གྱི་པར་གཞི་ལ་བལྟས་ནས་Java བྱ་རིམ་ཆུང་བ།དང་ཉེར་སྤྱོད་གོ་རིམ་དང་མཉམ་འབྲེལ་གྱིས་འགྲེམ་སྤེལ་བྱས་པའི་འཁོར་སྐྱོད་དུས་ཚོད་ཀྱི་ཚབ་རྟགས་འདོན་སྤྲོད་བྱེད་ཐུབ་མིན་ལ་རྒྱུས་ལོན་བྱེད་དགོས།
|
||||
|
||||
གསུམ། བག་ལེབ་ཀོར་མོ་སོགས་ཀྱི་ལག་རྩལ།
|
||||
ང་ཚོས་སྔར་ལས་ལྷག་པའི་སྒོ་ནས་སྤྱོད་མཁན་ལ་རྒྱུས་ལོན་དང་ཞབས་འདེགས་ཞུ་བར་རོགས་རམ་བྱེད་ཆེད། ང་ཚོའི་དྲ་ཚིགས་དང་། དྲ་ཐོག་ཞབས་ཞུ། ཉེར་སྤྱོད་གོ་རིམ་བཅས་ཀྱིས་"ཀ་ར་གོ་རེ་"ལག་རྩལ ཀ་ར་གོ་རེ་འདི་རིགས་ནི་མ་ལག་ནང་དུ་འགྲོ་འོང་བྱེད་པའི་དྲ་རྒྱའི་འགྲིམ་འགྲུལ་དང་ཞིབ་དཔྱད་ཚད་ལེན་གྱི་ནོར་འཁྲུལ་ལས་བྱུང་བའི་འགྲིམ་འགྲུལ་གསོག་ཉར་བྱེད་པར་བཀོལ་བ་ཡིན་པས། ངེས་པར་དུ་གཏན་འཁེལ་བྱ་དགོས། ང་ཚོས་ཁྱོད་ཀྱིས་ཀ་ར་གོ་རེ་འདི་རིགས་བཀོལ་ནས་ང་ཚོའི་དྲ་ཚིགས་དང་དྲ་ཐོག་ཞབས་ཞུ་དང་འབྲེལ་འདྲིས་ཇི་ལྟར་བྱ་རྒྱུར་གོ
|
||||
གལ་ཏེ་ཁྱོད་ཀྱིས་ཀ་ར་གོ་རེ་མེད་པར་བཟོས་ནས་Firefoxབཤར་ཆས།བཀོལ་སྤྱོད་བྱེད་འདོད་ན། ཁྱོད་ཀྱིས་དེ་མེ་གསོད་མེ་འགོག་གི་གསང་དོན་དང་བདེ་འཇགས་ལྟེ་གནས་སུ་བཞག་ཆོག གལ་ཏེ་ཁྱོད་ཀྱིས་བལྟ་ཆས་གཞན་པ་བཀོལ་སྤྱོད་བྱས་ན། འབྲེལ་ཡོད་མཁོ་འདོན་ཚོང་པའི་བྱེ་བྲག་གི་ཇུས་གཞིར་འདྲི་རྩད་བྱེད་རོགས།
|
||||
《ཀྲུང་ཧྭ་མི་དམངས་སྤྱི་མཐུན་རྒྱལ་ཁབ་ཀྱི་དྲ་རྒྱའི་བདེ་འཇགས་བཅའ་ཁྲིམས་》ཀྱི་དོན་ཚན་དོན་དྲུག་པའི་ནང་གསེས་དོན་ཚན་ལྔ་པའི་གཏན་འབེབས་གཞིར་བཟུང་མི་སྒེར་གྱི་ཆ་འཕྲིན།
|
|
@ -0,0 +1,170 @@
|
|||
Dear users of Kylin operating system and relevant products,
|
||||
This agreement describes your rights, obligations and prerequisites for your use of this product. Please read the clauses of the Agreement and the supplementary license (hereinafter collectively referred to as “the Agreement”) and the privacy policy statement for Kylin operating system (hereinafter referred to as “the Statement”).
|
||||
“This product” in the Agreement and the Statement refers to “Kylin operating system software product” developed, produced and released by Kylinsoft Co., Ltd. and used for handling the office work or building the information infrastructure for enterprises and governments. “We” refers to Kylinsoft Co., Ltd. “You” refers to the users who pay the license fee and use the Kylin operating system and relevant products.
|
||||
|
||||
End User License Agreement of Kylin
|
||||
Release date of the version: July 30, 2021
|
||||
Effective date of the version: July 30, 2021
|
||||
The Agreement shall include the following content:
|
||||
I. User license
|
||||
II. Java technology limitations
|
||||
III. Cookies and other technologies
|
||||
IV. Intellectual property clause
|
||||
V. Open source code
|
||||
VI. The third-party software/services
|
||||
VII. Escape clause
|
||||
VIII. Integrity and severability of the Agreement
|
||||
IX. Applicable law and dispute settlement
|
||||
|
||||
I. User license
|
||||
According to the number of users who have paid for this product and the types of computer hardware, we shall grant the non-exclusive and non-transferable license to you, and shall only allow the licensed unit and the employees signing the labor contracts with the unit to use the attached software (hereinafter referred to as “the Software”) and documents as well as any error correction provided by Kylinsoft.
|
||||
1. User license for educational institutions
|
||||
In the case of observing the clauses and conditions of the Agreement, if you are an educational institution, your institution shall be allowed to use the attached unmodified binary format software and only for internal use. “For internal use” here refers to that the licensed unit and the employees signing the labor contracts with the unit as well as the students enrolled by your institution can use this product.
|
||||
2. Use of the font software
|
||||
Font software refers to the software pre-installed in the product and generating font styles. You cannot separate the font software from the Software and cannot modify the font software in an attempt to add any function that such font software, as a part of this product, does not have when it is delivered to you, or you cannot embed the font software in the files provided as a commercial product for any fee or other remuneration, or cannot use it in equipment where this product is not installed. If you use the font software for other commercial purposes such as external publicity, please contact and negotiate with the font copyright manufacture to obtain the permissions for your relevant acts.
|
||||
|
||||
II. Java technology limitations
|
||||
You cannot change the “Java Platform Interface” (referred to as “JPI”, that is, the classes in the “java” package or any sub-package of the “java” package), whether by creating additional classes in JPI or by other means to add or change the classes in JPI. If you create an additional class as well as one or multiple relevant APIs, and they (i) expand the functions of Java platform; And (ii) may be used by the third-party software developers to develop additional software that may call the above additional APIs, you must immediately publish the accurate description of such APIs widely for free use by all developers. You cannot create or authorize other licensees to create additional classes, interfaces or sub-packages marked as “java”, “javax” and “sun” in any way, or similar agreements specified by Sun in any naming agreements. See the appropriate version of the Java Runtime Environment Binary Code License (located at http://jdk.java.net at present) to understand the availability of runtime code jointly distributed with Java mini programs and applications.
|
||||
|
||||
III. Cookies and other technologies
|
||||
In order to help us better understand and serve the users, our website, online services and applications may use the “Cookie” technology. Such Cookies are used to store the network traffic entering and exiting the system and the traffic generated due to detection errors, so they must be set. We shall understand how you interact with our website and online services by using such Cookies.
|
||||
If you want to disable the Cookie and use the Firefox browser, you may set it in Privacy and Security Center of Firefox. If your use other browsers, please consult the specific schemes from the relevant suppliers.
|
||||
In accordance with Article 76, paragraph 5 of the Network Security Law of the People's Republic of China, personal information refers to all kinds of information recorded in electronic or other ways, which can identify the natural persons’ personal identity separately or combined with other information, including but not limited to the natural person’s name, date of birth, identity certificate number, personal biological identification information, address and telephone number, etc. If Cookies contain the above information, or the combined information of non-personal information and other personal information collected through Cookie, for the purpose of this privacy policy, we shall regard the combined information as personal privacy information, and shall provide the corresponding security protection measures for your personal information by referring to Kylin Privacy Policy Statement.
|
||||
|
||||
IV. Intellectual property clause
|
||||
1. Trademarks and Logos
|
||||
This product shall be protected by the copyright law, trademark law and other laws and international intellectual property conventions. Title to the product and all associated intellectual property rights are retained by us or its licensors. No right, title or interest in any trademark, service mark, logo or trade name of us or its licensors is granted under the Agreement. Any use of Kylinsoft marked by you shall be in favor of Kylinsoft, and without our consent, you shall not arbitrarily use any trademark or sign of Kylinsoft.
|
||||
2. Duplication, modification and distribution
|
||||
If the Agreement remains valid for all duplicates, you may and must duplicate, modify and distribute software observing GNU GPL-GNU General Public License agreement among the Kylin operating system software products in accordance with GNU GPL-GNU General Public License, and must duplicate, modify and distribute other Kylin operating system software products not observing GNU GPL-GNU General Public License agreement in accordance with relevant laws and other license agreements, but no derivative release version based on the Kylin operating system software products can use any of our trademarks or any other signs without our written consent.
|
||||
Special notes: Such duplication, modification and distribution shall not include any software, to which GNU GPL-GNU General Public License does not apply, in this product, such as the software store, input method software, font library software and third-party applications contained by the Kylin operating system software products. You shall not duplicate, modify (including decompilation or reverse engineering) or distribute the above software unless prohibited by applicable laws.
|
||||
|
||||
V. Open source code
|
||||
For any open source codes contained in this product, any clause of the Agreement shall not limit, constrain or otherwise influence any of your corresponding rights or obligations under any applicable open source code license or all kinds of conditions you shall observe.
|
||||
|
||||
VI. The third-party software/services
|
||||
The third-party software/services referred to in the Agreement refer to relevant software/services developed by other organizations or individuals other than the Kylin operating system manufacturer. This product may contain or be bundled with the third-party software/services to which the separate license agreements are attached. When you use any third-party software/services with separate license agreements, you shall be bound by such separate license agreements.
|
||||
We shall not have any right to control the third-party software/services in these products and shall not expressly or implicitly ensure or guarantee the legality, accuracy, effectiveness or security of the acts of their providers or users.
|
||||
|
||||
VII. Escape clause
|
||||
1. Limited warranty
|
||||
We guarantee to you that within ninety (90) days from the date when you purchase or obtain this product in other legal ways (subject to the date of the sales contract), the storage medium (if any) of this product shall not be involved in any defects in materials or technology when it is normally used. All compensation available to you and our entire liability under this limited warranty will be for us to choose to replace this product media or refund the fee paid for this product.
|
||||
2. Disclaimer
|
||||
In addition to the above limited warranty, the Software is provided “as is” without any express or implied condition statement and warranty, including any implied warranty of merchantability, suitability for a particular purpose or non-infringement, except that this disclaimer is deemed to be legally invalid.
|
||||
3. Limitation of responsibility
|
||||
To the extent permitted by law, under any circumstances, no matter what theory of liability is adopted, no matter how it is caused, for any loss of income, profit or data caused by or related to the use or inability to use the Software, or for special indirect consequential incidental or punitive damages, neither we nor its licensors shall be liable (even if we have been informed of the possibility of such damages). According to the Agreement, in any case, whether in contract tort (including negligence) or otherwise, our liability to you will not exceed the amount you pay for the Software. The above limitations will apply even if the above warranty fails of its essential purpose.
|
||||
|
||||
VIII.Integrity and severability of the Agreement
|
||||
1. The integrity of the Agreement
|
||||
The Agreement is an entire agreement on the product use concluded by us with you. It shall replace all oral or written contact information, suggestions, representations and guarantees inconsistent with the Agreement previous or in the same period. During the period of the Agreement, in case of any conflict clauses or additional clauses in the relevant quotations, orders or receipts or in other correspondences regarding the content of the Agreement between the parties, the Agreement shall prevail. No modification of the Agreement will be binding, unless in writing and signed by an authorized representative of each party.
|
||||
2. Severability of the Agreement
|
||||
If any provision of the Agreement is deemed to be unenforceable, the deletion of the corresponding provision will still be effective, unless the deletion will hinder the realization of the fundamental purpose of the parties (in which case, the Agreement will be terminated immediately).
|
||||
|
||||
IX. Applicable law and dispute settlement
|
||||
1. Application of governing laws
|
||||
Any dispute settlement (including but not limited to litigation and arbitration) related to the Agreement shall be governed by the laws of the People’s Republic of China. The legal rules of any other countries and regions shall not apply.
|
||||
2. Termination
|
||||
If the Software becomes or, in the opinion of either party, may become the subject of any claim for intellectual property infringement, either party may terminate the Agreement immediately.
|
||||
The Agreement is effective until termination. You may terminate the Agreement at any time, but you must destroy all originals and duplicates of the Software. The Agreement will terminate immediately without notice from us if you fail to comply with any provision of the Agreement. At the time of termination, you must destroy all originals and duplicates of such software, and shall be legally liable for not observing the Agreement.
|
||||
The Agreement shall be in both Chinese and English, and in case of ambiguity between any content above, the Chinese version shall prevail.
|
||||
|
||||
Privacy Policy Statement of Kylin Operating System/n Release date of the version: July 30, 2021
|
||||
Effective date of the version: July 30, 2021
|
||||
|
||||
We attach great importance to personal information and privacy protection. In order to guarantee the legal, reasonable and appropriate collection, storage and use of your personal privacy information and the transmission and storage in the safe and controllable circumstances, we hereby formulate this Statement. We shall provide your personal information with corresponding security protection measures according to the legal requirements and mature security standards in the industry.
|
||||
|
||||
The Statement shall include the following content:
|
||||
I. Collection and use your personal information
|
||||
II. How to store and protect your personal information
|
||||
III. How to manage your personal information
|
||||
IV. Privacy of the third-party software/services
|
||||
V. Minors’ use of the products
|
||||
VI. How to update this Statement
|
||||
VII. How to contact us
|
||||
|
||||
I. How to collect and use your personal information
|
||||
1. The collection of personal information
|
||||
We shall collect the relevant information when you use this product mainly to provide you with higher-quality products, more usability and better services. Part of information collected shall be provided by you directly, and other information shall be collected by us through your interaction with the product as well as your use and experience of the product. We shall not actively collect and deal with your personal information unless we have obtained your express consent according to the applicable legal stipulations.
|
||||
1) The licensing mechanism for this product allows you to apply for the formal license of the product in accordance with the contract and relevant agreements after you send a machine code to the commercial personnel of Kylinsoft, and the machine code is generated through encryption and conversion according to the information of the computer used by you, such as network card, firmware and motherboard. This machine code shall not directly contain the specific information of the equipment, such as network card, firmware and motherboard, of the computer used by you.
|
||||
2) Server of the software store of this product shall connect it according to the CPU type information and IP address of the computer used by you; at the same time, we shall collect the relevant information of your use of the software store of this product, including but not limited to the time of opening the software store, interaction between the pages, search content and downloaded content. The relevant information collected is generally recorded in the log of server system of software store, and the specific storage position may change due to different service scenarios.
|
||||
3) Upgrading and updating of this product shall be connected according to the IP address of the computer used by you, so that you can upgrade and update the system;
|
||||
4) Your personal information, such as E-mail address, telephone number and name, shall be collected due to business contacts and technical services.
|
||||
5) The biological characteristic management tool support system components of this product shall use the biological characteristics for authentication, including fingerprint, finger vein, iris and voiceprint. The biological characteristic information input by you shall be stored in the local computer, and for such part of information, we shall only receive the verification results but shall not collect or upload it. If you do not need to use the biological characteristics for the system authentication, you may disable this function in the biological characteristic management tool.
|
||||
6) This product shall provide the recording function. When you use the recording function of this product, we shall only store the audio content when you use the recording in the local computer but shall not collect or upload the content.
|
||||
7) The service and support functions of this product shall collect the information provided by you for us, such as log, E-mail, telephone and name, so as to make it convenient to provide the technical services, and we shall properly keep your personal information.
|
||||
8) In the upgrading process of this product, if we need to collect additional personal information of yours, we shall timely update this part of content.
|
||||
2. Use of personal information
|
||||
We shall strictly observe the stipulations of laws and regulations and agreements with you to use the information collected for the following purposes. In case of exceeding the scope of following purposes, we shall explain to you again and obtain your consent.
|
||||
1) The needs such as product licensing mechanism, use of software store, system updating and maintenance, biological identification and online services shall be involved;
|
||||
2) We shall utilize the relevant information to assist in promoting the product security, reliability and sustainable service;
|
||||
3) We shall directly utilize the information collected (such as the E-mail address and telephone provided by you) to communicate with you directly, for example, business contact, technical support or follow-up service visit;
|
||||
4) We shall utilize the data collected to improve the current usability of the product, promote the product’s user experience (such as the personalized recommendation of software store) and repair the product defects, etc.;
|
||||
5) We shall use the user behavior data collected for data analysis. For example, we shall use the information collected to analyze and form the urban thermodynamic chart or industrial insight report excluding any personal information. We may make the information excluding identity identification content upon the statistics and processing public and share it with our partners, to understand how the users use our services or make the public understand the overall use trend of our services;
|
||||
6) We may use your relevant information and provide you with the advertising more related to you on relevant websites and in applications andother channels;
|
||||
7) In order to follow the relevant requirements of relevant laws and regulations, departmental regulations and rules and governmental instructions.
|
||||
3. Information sharing and provision
|
||||
We shall not share or transfer your personal information to any third party, except for the following circumstances:
|
||||
1) After obtaining your clear consent, we shall share your personal information with the third parities;
|
||||
2) In order to achieve the purpose of external processing, we may share your personal information with the related companies or other third-party partners (the third-party service providers, contractors, agents and application developers). We shall protect your information security by means like encryption and anonymization;
|
||||
3) We shall not publicly disclose the personal information collected. If we must disclose it publicly, we shall notify you of the purpose of such public disclosure, type of information disclosed and the sensitive information that may be involved, and obtain your consent;
|
||||
4) With the continuous development of our business, we may carry out the transactions, such as merger, acquisition and asset transfer, and we shall notify you of the relevant circumstances, and continue to protect or require the new controller to continue to protect your personal information according to laws and regulations and the standards no lower than that required by this Statement;
|
||||
5) If we use your personal information beyond the purpose claimed at the time of collection and the directly or reasonably associated scope, we shall notify you again and obtain your consent before using your personal information.
|
||||
4. Exceptions with authorized consent
|
||||
1) It is directly related to national security, national defense security and other national interests;
|
||||
2) It is directly related to public safety, public health and public knowledge and other major public interests;
|
||||
3) It is directly related to crime investigation, prosecution, judgment and execution of judgment;
|
||||
4) It aims to safeguard the life, property and other major legal rights and interests of you or others but it is impossible to obtain your own consent;
|
||||
5) The personal information collected is disclosed to the public by yourself;
|
||||
6) Personal information collected from legally publicly disclosed information, such as legal news reports, government information disclosure and other channels;
|
||||
7) It is necessary to sign and perform of the contract according to your requirement;
|
||||
8) It is necessary to maintain the safe and stable operation of the provided products or services, including finding and handling any fault of products or services;
|
||||
9) It is necessary to carry out statistical or academic research for public interest, and when the results of academic research or description are provided, the personal information contained in the results is de-identified;
|
||||
10) Other circumstances specified in the laws and regulations.
|
||||
|
||||
II. How to store and protect personal information
|
||||
1. Information storage place
|
||||
We shall store the personal information collected and generated in China within the territory of China in accordance with laws and regulations.
|
||||
2. Information storage duration
|
||||
Generally speaking, we shall retain your personal information for the time necessary to achieve the purpose or for the shortest term stipulated by laws and regulations. Information recorded in the log shall be kept for a specified period and be automatically deleted according to the configuration.
|
||||
When operation of our product or services stops, we shall notify you in the forms such as notification and announcement, delete your personal information or conduct anonymization within a reasonable period and immediately stop the activities collecting the personal information.
|
||||
3. How to protect the information
|
||||
We shall strive to provide guarantee for the users’ information security, to prevent the loss, improper use, unauthorized access or disclosure of the information.
|
||||
We shall use the security protection measures within the reasonable security level to protect the information security. For example, we shall protect your system account and password by means like encryption.
|
||||
We shall establish the special management systems, processes and organizations to protect the information security. For example, we shall strictly restrict the scope of personnel who access to the information, and require them to observe the confidentiality obligation.
|
||||
4. Emergency response plan
|
||||
In case of security incidents, such as personal information disclosure, we shall start the emergency response plan according to law, to prevent the security incidents from spreading, and shall notify you of the situation of the security incidents, the possible influence of the incidents on you and the remedial measures we will take, in the form of pushing the notifications and announcements. We will also report the disposition of the personal information security events according to the laws, regulations and regulatory requirements.
|
||||
|
||||
III. How to manage your personal information
|
||||
If you worry about the personal information disclosure caused by using this product, you may consider suspending or not using the relevant functions involving the personal information, such as the formal license of the product, application store, system updating and upgrading and biological identification, according to the personal and business needs.
|
||||
Please pay attention to the personal privacy protection at the time of using the third-party software/services in this product.
|
||||
|
||||
IV. Privacy of the third-party software/services
|
||||
|
||||
The third-party software/services referred to in the Agreement refer to relevant software/services developed by other organizations or individuals other than the Kylin operating system manufacturer.
|
||||
When you install or use the third-party software/services in this product, the privacy protection and legal responsibility of the third-party software/services shall be independently borne by the third-party software/services. Please carefully read and examine the privacy statement or clauses corresponding to the third-party software/services, and pay attention to the personal privacy protection.
|
||||
|
||||
V. Minors’ use of the products
|
||||
If you are a minor, you shall obtain your guardian’s consent on your use of this product and the relevant service clauses. Except for the information required by the product, we shall not deliberately require the minors to provide more data. With the guardians’ consent or authorization, the accounts created by the minors shall be deemed to be the same as any other accounts. We have formulated special information processing rules to protect the personal information security of minors using this product. The guardians shall also take the appropriate preventive measures to protect the minors and supervise their use of this product.
|
||||
|
||||
VI. How to update this Statement
|
||||
We may update this Statement at any time, and shall display the updated statement to you through the product installation process or the company’s website at the time of updating. After such updates take effect, if you use such services or any software permitted according to such clauses, you shall be deemed to agree on the new clauses. If you disagree on the new clauses, then you must stop using this product, and please close the accountcreated by you in this product; if you are a guardian, please help your minor child to close the account created by him/her in this product.
|
||||
|
||||
VII. How to contact us
|
||||
If you have any question, or any complaints or opinions on this Statement, you may seek advice through our customer service hotline 400-089-1870, or the official website (www.kylinos.cn), or “service and support” application in this product. You may also contact us by E-mail (market@kylinos.cn).
|
||||
We shall timely and properly deal with them. Generally, a reply will be made within 15 working days.
|
||||
The Statement shall take effect from the date of updating. The Statement shall be in Chinese and English at the same time and in case of any ambiguity of any clause above, the Chinese version shall prevail.
|
||||
Last date of updating: November 1, 2021
|
||||
|
||||
Address:
|
||||
Building 3, Xin’an Entrepreneurship Plaza, Tanggu Marine Science and Technology Park, Binhai High-tech Zone, Tianjin (300450)
|
||||
Silver Valley Tower, No. 9, North Forth Ring West Road, Haidian District, Beijing (100190)
|
||||
Building T3, Fuxing World Financial Center, No. 303, Section 1 of Furong Middle Road, Kaifu District, Changsha City (410000)
|
||||
Digital Entertainment Building, No. 1028, Panyu Road, Xuhui District, Shanghai (200030)
|
||||
Tel.:
|
||||
Tianjin (022) 58955650 Beijing (010) 51659955
|
||||
Changsha (0731) 88280170 Shanghai (021) 51098866
|
||||
Fax:
|
||||
Tianjin (022) 58955651 Beijing (010) 62800607
|
||||
Changsha (0731) 88280166 Shanghai (021) 51062866
|
||||
|
||||
Company website: www.kylinos.cn
|
||||
E-mail: support@kylinos.cn
|
|
@ -0,0 +1,187 @@
|
|||
尊敬的银河麒麟操作系统及相关产品用户:
|
||||
本协议介绍您的权利、义务以及您使用本产品的前提条件。请您仔细阅读本协议条款、补充许可条款(统称“协议”)及银河麒麟操作系统隐私政策声明(以下简称“声明”)。
|
||||
本协议及声明中的“本产品”是指由麒麟软件有限公司开发并制作发行的用于办公或构建企业及政府的信息化基础设施——“银河麒麟操作系统软件产品”。“我们”是指麒麟软件有限公司。“您”是指支付授权费用并使用银河麒麟操作系统及相关产品的用户。
|
||||
|
||||
银河麒麟最终用户使用许可协议
|
||||
版本发布日期:【2021】年【7】月【30】日
|
||||
版本生效日期:【2021】年【7】月【30】日
|
||||
|
||||
本协议将向您说明以下内容:
|
||||
一、使用许可
|
||||
二、Java技术限制
|
||||
三、Cookie和其他技术
|
||||
四、知识产权条款
|
||||
五、开放源代码说明
|
||||
六、第三方软件/服务说明
|
||||
七、免责条款
|
||||
八、协议完整性及可分割性说明
|
||||
九、适用法律及争议解决
|
||||
|
||||
一、使用许可
|
||||
|
||||
按照已经为本产品支付费用的用户数目及计算机硬件类型,我们向您授予非排他、不可转让的许可,仅允许被授权人单位及与其签订劳动合同的员工使用由麒麟软件提供的随附软件和文档以及任何错误纠正。
|
||||
1.教育机构使用许可
|
||||
在遵守本协议的条款和条件的情况下,如果您是教育机构,允许贵机构仅在内部使用随附的未经修改的二进制格式的软件。此处的“在内部使用”是指被授权人单位及与其签订劳动合同的员工以及在贵机构入学的学生使用本产品。
|
||||
2.字型软件使用
|
||||
字型软件指本产品中预装的和生成字体样式的软件。您不可从软件中分离字型软件,不可改动字型软件,以新增此等字型软件被作为本产品的一部分交付予您时所不具备的任何功能,不可将字型软件嵌入作为商业产品提供以换取收费或其他报酬的文件、不可脱离安装了本产品的机器使用。如将字型软件用于对外宣传等其他商业用途时,请您与字体版权厂商联系协商以获得对您相关行为的许可。
|
||||
|
||||
二、Java技术限制
|
||||
|
||||
您不可更改“Java平台界面”(简称“JPI”,即指明为“java”包或“java”包的任何子包中的类),无论通过在JPI中创建额外的类,还是通过其他方式导致对JPI中的类进行增添或更动,均为不可。如果您创建一个额外的类以及一个或多个相关的API,而它们(i)扩展Java平台的功能;并且(ii)可供第三方软件开发者用于开发可调用上述额外API的额外软件,则您必须迅即广泛公布对此种API的准确说明,以供所有开发者免费使用。您不可创建、或授权其他被许可人创建以任何方式标示为“java”、“javax”、“sun”的额外的类、界面、子包或Sun在任何命名约定中指明的类似约定。参见Java运行时环境二进制代码许可的适当版本(目前位于http://jdk.java.net),以了解可与Java小程序和应用程序共同分发的运行时代码的可供情况。
|
||||
|
||||
三、Cookie和其他技术
|
||||
|
||||
为帮助我们更好地了解并服务用户,我们的网站、在线服务和应用程序可能会使用“Cookie”技术。这些Cookie用于存储进出系统的网络流量以及因检测错误而生成的流量,因此必须设置。 我们通过使用这些Cookie来了解您与我们的网站和在线服务如何进行交互。
|
||||
如果您想禁用 Cookie 并且使用的是Firefox浏览器,可在Firefox的隐私与安全中心进行设置。如果您使用的是其他浏览器,请向相关供应商咨询具体方案。
|
||||
依照《中华人民共和国网络安全法》第七十六条第五款,个人信息,是指以电子或者其他方式记录的能够单独或者与其他信息结合识别自然人个人身份的各种信息,包括但不限于自然人的姓名、出生日期、身份证件号码、个人生物识别信息、住址、电话号码等。如果Cookie中包含上述信息,或者存在通过Cookie收集的非个人信息与其他个人信息合并后的信息,出于本隐私政策的目的,我们会将合并后的信息视为个人隐私信息,将参照银河麒麟隐私政策声明,为您的个人信息提供相应的安全保护措施。
|
||||
|
||||
四、知识产权条款
|
||||
|
||||
1.商标和标识
|
||||
本产品受到版权(著作权)法、商标法和其他法律及国际知识产权公约的保护。我们或其许可方保留对本产品的所有权及所有相关的知识产权。对于我们或其许可方的任何商标、服务标记、标识或商号的任何权利、所有权或利益,本协议均不作任何授权。您对麒麟软件标记的任何使用都应有利于麒麟软件,未经我们书面同意,不得擅自使用麒麟软件任何商标、标识。
|
||||
2.关于复制、修改及分发
|
||||
如果在所有复制品中维持本协议书不变,您可以且必须根据《GNU GPL-GNU通用公共许可证》复制、修改及分发银河麒麟操作系统软件产品中遵守《GNU GPL-GNU通用公共许可证》协议的软件,其他不遵守《GNU GPL-GNU通用公共许可证》协议的银河麒麟操作系统软件产品必须根据相关法律、其他许可协议进行复制、修改及分发,但任何以银河麒麟操作系统软件产品为基础的衍生发行版未经我们的书面授权不能使用任何我们的商标或其他任何标志。
|
||||
特别注意:该复制、修改及分发不包括本产品中包含的任何不适用《GNU GPL-GNU通用公共许可证》的软件,如银河麒麟操作系统软件产品中包含的软件商店、输入法软件、字库软件、第三方应用软件等。除非适用法律予以禁止,否则您不得对上述软件进行复制、修改(包括反编译或反向工程)、分发。
|
||||
|
||||
五、开放源代码说明
|
||||
|
||||
对于本产品中包含的任何开放源代码,本协议的任何条款均不得限制、约束或以其它方式影响任何适用开放源代码许可证赋予您的任何相应的权利或者义务或您应遵守的各种条件。
|
||||
|
||||
六、第三方软件/服务说明
|
||||
|
||||
本协议所指的第三方软件/服务是指由非银河麒麟操作系统生产商的其他组织或个人开发的相关软件/服务。本产品可能包含或捆绑有第三方软件/服务,这些第三方软件/服务附带单独的许可协议,您使用附带单独许可协议的任何第三方软件/服务需受到该单独许可协议的约束。
|
||||
我们不对本产品中的第三方软件/服务拥有任何控制权,也不对其提供方或用户行为的合法性、准确性、有效性、安全性进行任何明示或默示的保证或担保。
|
||||
|
||||
七、免责条款
|
||||
|
||||
1.有限担保
|
||||
我们向您担保,自购买或其他合法取得本产品之日起九十(90)天内(以销售合同日期为准),本产品的存储介质(如果有)在正常使用的情况下无材料和工艺方面的缺陷。在本有限担保项下,您可获得的所有补偿及我们的全部责任为由我们选择更换本产品介质或退还本产品的购买费用。
|
||||
2.免责声明
|
||||
除上述有限担保外,本软件按“原样”提供,不提供任何明示或默示的条件、陈述及担保,包括对适销性、对特定用途的适用性或非侵权性的任何默示的担保,均不予负责,但本免责声明被认定为法律上无效的情况除外。
|
||||
3.责任限制
|
||||
在法律允许范围内,无论在何种情况下,无论采用何种有关责任的理论,无论因何种方式导致,对于因使用或无法使用本软件引起的或与之相关的任何收益损失、利润或数据损失,或者对于特殊的、间接的、后果性的、偶发的或惩罚性的损害赔偿,我们或其许可方均不承担任何责任(即使我们已被告知可能出现上述损害赔偿)。根据本协议,在任何情况下,无论是在合同、侵权行为(包括过失)方面,还是在其他方面,我们对您的责任将不超过您就本软件所支付的金额。即使上述担保未能达到其基本目的,上述限制仍然适用。
|
||||
|
||||
八、协议完整性及可分割性说明
|
||||
|
||||
1.协议完整性
|
||||
本协议是我们就产品使用与您达成的完整协议。它取代此前或同期的所有和本协议不一致的口头或书面往来信息、建议、陈述和担保。在本协议期间,有关报价、订单、回执或各方之间就本协议内容进行的其他往来通信中的任何冲突条款或附加条款,均以本协议为准。对本协议的任何修改均无约束力,除非通过书面进行修改并由每一方的授权代表签字。
|
||||
2.可分割性
|
||||
如果本协议中有任何规定被认定为无法执行,则删除相应规定,本协议仍然有效,除非该删除会防碍各方根本目的的实现(在这种情况下,本协议将立即终止)。
|
||||
|
||||
九、适用法律及争议解决
|
||||
|
||||
1.管辖法律适用
|
||||
与本协议相关的任何争议解决(包括但不限于诉讼、仲裁等)均受适用中华人民共和国法律管辖。选择其它任何国家和地区的法律规则不予适用。
|
||||
2.终止
|
||||
如果本软件成为或在任一方看来可能成为任何知识产权侵权索赔之标的,则任一方可立即终止本协议。
|
||||
本协议在终止之前有效。您可以随时终止本协议,但必须同时销毁本软件的全部正本和副本。如果您未遵守本协议的任何规定,则本协议将不经我们发出通知立即终止。终止时,您必须销毁本软件的全部正本和副本,并且需承担因未遵守本协议而导致的法律责任。
|
||||
|
||||
本协议提供中英文两种版本,以上任何内容如有歧义,以中文版本为准。
|
||||
|
||||
银河麒麟操作系统隐私政策声明
|
||||
版本发布日期:【2021】年【7】月【30】日
|
||||
版本生效日期:【2021】年【7】月【30】日
|
||||
|
||||
我们非常重视个人信息和隐私保护,为了保证合法、合理、适度的收集、存储、使用您的个人隐私信息,并在安全、可控的情况下进行传输、存储,我们制定了本声明。我们将会按照法律要求和业界成熟安全标准,为您的个人信息提供相应的安全保护措施。
|
||||
|
||||
本声明将向您说明以下内容:
|
||||
一、关于收集和使用您的个人信息
|
||||
二、如何存储和保护您的个人信息
|
||||
三、如何管理您的个人信息
|
||||
四、关于第三方软件/服务的隐私说明
|
||||
五、关于未成年人使用产品
|
||||
六、本声明如何更新
|
||||
七、如何联系我们
|
||||
|
||||
一、如何收集和使用您的个人信息
|
||||
|
||||
1.收集个人信息的情况
|
||||
我们在您使用本产品过程中收集相关的信息,主要为了向您提供更高质量、更易用的产品和更好的服务。收集的部分信息由您直接提供,其他信息则由我们通过您与产品的交互以及对产品的使用和体验收集而来。除非我们已根据适用的法律规定取得您的明示同意,我们不会主动收集并处理您的个人信息。
|
||||
1)本产品授权许可机制,会根据您所使用计算机的网卡、固件和主板等信息通过加密机制和转换方法生成申请产品正式授权许可的机器码;您将该机器码发送给麒麟软件商务人员后,可根据合同及相关协议申请正式许可。该机器码不直接包含您所使用计算机的网卡、固件和主板等设备的具体信息。
|
||||
2)本产品软件商店的服务器端,会根据您所使用计算机的CPU类型信息以及IP地址进行连接,同时我们会收集您使用本产品软件商店的相关信息,包括但不限于打开软件商店的时间、各页面之间的交互、搜索内容、下载的内容等,收集的相关信息一般记录在软件商店的服务端系统的日志中,具体存储位置可能因为不同的服务场景有所变动。
|
||||
3)本产品的升级更新,会根据您所使用计算机的IP地址进行连接,以便实现您升级更新系统;
|
||||
4)因业务往来及技术服务等向您收集电子邮箱、电话、姓名等个人信息。
|
||||
5)本产品的生物特征管理工具支持系统组件使用生物特征进行认证,包括指纹、指静脉、虹膜、声纹等。您录入的生物特征信息将储存在本地计算机,这部分信息我们仅接收验证结果,不会收集和上传。如您不需要使用生物特征进行系统认证,可以在生物特征管理工具中关闭该功能。
|
||||
6)本产品提供录音功能,您在使用本产品录音软件中,我们仅会将您使用录音时的音频内容存储在本地计算机中,不会进行收集和上传。
|
||||
7)本产品的服务与支持功能会收集由您提供给我们的日志、电子邮箱、电话、姓名等信息,便于提供技术服务,我们将妥善保管您的个人信息。
|
||||
8)本产品升级过程中,如需新增收集您的个人信息,我们将及时更新本部分内容。
|
||||
2.使用个人信息的情况
|
||||
我们严格遵守法律法规的规定及与您的约定,将收集的信息用于以下用途。若我们超出以下用途,我们将再次向您进行说明,并征得您的同意。
|
||||
1)涉及产品许可机制、软件商店使用、系统更新维护、生物识别、在线服务等需要;
|
||||
2)我们会利用相关信息协助提升产品的安全性、可靠性和可持续服务;
|
||||
3)我们会利用收集的信息(例如您提供的电子邮件地址、电话等)直接与您沟通。例如,业务联系、技术支持或服务回访;
|
||||
4)我们会利用收集的数据改进产品当前的易用性、提升产品用户体验(例如软件商店的个性化推荐)以及修复产品缺陷等;
|
||||
5)我们会将所收集到的用户行为数据用于大数据分析。例如,我们将收集到的信息用于分析形成不包含任何个人信息的城市热力图或行业洞察报告。我们可能对外公开并与我们的合作伙伴分享经统计加工后不含身份识别内容的信息,用于了解用户如何使用我们服务或让公众了解我们服务的总体使用趋势;
|
||||
6)我们可能使用您的相关信息,在相关网站、应用及其他渠道向您提供与您更加相关的广告;
|
||||
7)为了遵从相关法律法规、部门规章、政府指令的相关要求。
|
||||
3.信息的分享及对外提供
|
||||
我们不会共享或转让您的个人信息至第三方,但以下情况除外:
|
||||
1)获取您的明确同意后,我们会与第三方分享您的个人信息;
|
||||
2)为实现外部处理的目的,我们可能与关联公司或其他第三方合作伙伴(第三方服务供应商、承包商、代理、应用开发者等)分享您的个人信息。我们将采用加密、匿名化处理等手段来保障您的信息安全;
|
||||
3)我们不会对外公开披露所收集的个人信息,如必须公开披露时,我们会向您告知此次公开披露的目的、披露信息的类型及可能涉及的敏感信息,并征得您的同意;
|
||||
4)随着我们业务的持续发展,我们有可能进行合并、收购、资产转让等交易,我们将告知相关情形,按照法律法规及不低于本声明所要求的标准继续保护或要求新的控制者继续保护您的个人信息;
|
||||
5)如我们使用您的个人信息,超出了与收集时所声称的目的及具有直接或合理关联的范围,我们将在使用您的个人信息前,再次向您告知并征得您的同意。
|
||||
4.征得授权同意的例外情况
|
||||
1)与国家安全、国防安全等国家利益直接相关的;
|
||||
2)与公共安全、公共卫生、公众知情等重大公共利益直接相关的;
|
||||
3)与犯罪侦查、起诉、审判和判决执行等直接相关的;
|
||||
4)出于维护您或其他个人的生命、财产等重大合法权益但又无法得到您本人同意的;
|
||||
5)所收集的个人信息是您自行向社会公众公开的;
|
||||
6)从合法公开披露的信息中收集的个人信息,如合法的新闻报道、政府信息公开等渠道;
|
||||
7)根据您要求签订和履行合同所必需的;
|
||||
8)用于维护所提供的产品或服务的安全稳定运行所必需的。如发现、处置产品或服务的故障;
|
||||
9)出于公共利益开展统计或学术研究所必需,且其对外提供学术研究或描述的结果时,对结果中所包含的个人信息进行去标识化处理的;
|
||||
10)法律法规规定的其他情形。
|
||||
|
||||
二、我们如何存储和保护您的个人信息
|
||||
|
||||
1.信息存储的地点
|
||||
我们会按照法律法规规定,将在中国境内收集和产生的个人信息存储于中国境内。
|
||||
2.信息存储的期限
|
||||
一般而言,我们仅为实现目的所必需的时间或法律法规规定最短期限保留您的个人信息。记录在日志中的信息会按配置在一定期限保存及自动删除。
|
||||
当我们的产品或服务发生停止运营的情形时,我们将以通知、公告等形式通知您,在合理的期限内删除您的个人信息或进行匿名化处理,并立即停止收集个人信息的活动。
|
||||
3.我们如何保护这些信息
|
||||
我们努力为用户的信息安全提供保障,以防止信息的丢失、不当使用、未经授权访问或披露。
|
||||
我们将在合理的安全水平内使用安全保护措施以保障信息的安全。例如,我们会使用加密技术等手段来保护您的系统级账户密码。
|
||||
我们建立专门的管理制度、流程和组织以保障信息的安全。例如,我们严格限制访问信息的人员范围,要求他们遵守保密义务。
|
||||
4.应急预案
|
||||
若发生个人信息泄露等安全事件,我们会依法启动应急预案,阻止安全事件扩大,并以推送通知、公告等形式告知您安全事件的情况、事件可能对您的影响以及我们将采取的补救措施。我们还将按照法律法规和监管部门要求,上报个人信息安全事件的处置情况。
|
||||
|
||||
三、如何管理您的个人信息
|
||||
|
||||
如果担心因使用本产品导致个人信息的泄露,您可根据个人及业务需要考虑暂停或不使用涉及个人信息的相关功能,如产品正式授权许可、应用商店、系统更新升级、生物识别等。
|
||||
在使用本产品之上的第三方软件/服务时,请注意个人隐私保护。
|
||||
|
||||
四、关于第三方软件/服务的隐私说明
|
||||
|
||||
本协议所指的第三方软件/服务是由非银河麒麟操作系统生产商的其他组织或个人开发的相关软件/服务。
|
||||
您在本产品之上安装或使用第三方软件/服务时,第三方软件/服务的隐私保护和法律责任由第三方软件/服务自行负责,请您仔细阅读和审查第三方软件/服务对应的隐私声明或条款,注意个人隐私保护。
|
||||
|
||||
五、关于未成年人使用产品
|
||||
|
||||
如果您是未成年人,则需要您的监护人同意您使用本产品并同意相关服务条款。除了提供产品所需要的信息外,我们不会刻意要求未成年人提供其他更多数据。在征得监护人同意或授权后,未成年人所创建的帐户即被视为等同于其他任何帐户。我们制定了专门的信息处理规则以保护使用本产品的未成年人的个人信息安全。监护人也应采取适当的预防措施保护未成年人,监督其对本产品的使用。
|
||||
|
||||
六、本声明如何更新
|
||||
|
||||
我们可能会随时更新本声明,并且会在变更时通过产品安装过程或公司网站向您展示变更后的声明。在这些变更生效后使用服务或根据这些条款授予许可的任何软件,即表示您同意新的条款。如果您不同意新的条款,则必须停止使用本产品,请关闭您在本产品之上创建的帐户;如果您是监护人,请帮助您的未成年子女关闭他或她在本产品之上创建的帐户。
|
||||
|
||||
七、如何联系我们
|
||||
|
||||
如您对本声明存在任何疑问,或任何相关的投诉、意见,可通过我们的客服热线400-089-1870、官方网站(www.kylinos.cn)或本产品中“服务与支持”应用进行咨询或反映。您也可以通过发送邮件至market@kylinos.cn与我们联系。
|
||||
我们会及时、妥善处理您的问题。一般情况下,我们将在15个工作日内给予答复。
|
||||
本声明自更新之日起生效,同时提供中英文两种版本,以上任何条款如有歧义,以中文版本为准。
|
||||
最近更新日期:2021年11月1日
|
||||
|
||||
地址:
|
||||
天津市滨海高新区塘沽海洋科技园信安创业广场3号楼(300450)
|
||||
北京市海淀区北四环西路9号银谷大厦(100190)
|
||||
长沙市开福区芙蓉中路1段303号富兴世界金融中心T3栋(410000)
|
||||
上海市徐汇区番禺路1028号数娱大厦(200030)
|
||||
电话:
|
||||
天津(022)58955650 北京(010)51659955
|
||||
长沙(0731)88280170 上海(021)51098866
|
||||
传真:
|
||||
天津(022)58955651 北京(010)62800607
|
||||
长沙(0731)88280166 上海(021)51062866
|
||||
公司网站:www.kylinos.cn
|
||||
电子邮件:support@kylinos.cn
|
|
@ -371,7 +371,7 @@ void Widget::addOutputToPrimaryCombo(const KScreen::OutputPtr &output)
|
|||
return;
|
||||
}
|
||||
|
||||
monitorComboBox->addItem(Utils::outputName(output).replace(0, 1, Utils::outputName(output)[0].toUpper()), output->id());
|
||||
monitorComboBox->addItem(Utils::outputName(output), output->id());
|
||||
if (output->isPrimary() && !mIsWayland) {
|
||||
Q_ASSERT(mConfig);
|
||||
int lastIndex = monitorComboBox->count() - 1;
|
||||
|
|
|
@ -309,6 +309,7 @@ void Area::initAddLanguage()
|
|||
|
||||
connect(areaWidget->addbutton(), &AddButton::clicked, this, [=]() {
|
||||
areaWidget->languageDialog()->show();
|
||||
UkccCommon::buriedSettings(name(), "add system language", QString("clicked"));
|
||||
});
|
||||
connect(areaWidget->languageDialog(), &AddLanguageDialog::addShowLanguage, this, [=](QStringList selectedLanguageList) {
|
||||
for (QString selectedLanguage : selectedLanguageList) {
|
||||
|
@ -363,6 +364,7 @@ void Area::initConnect()
|
|||
showLanguageList.removeOne(languageCode);
|
||||
changeKey = QString("showLanguageList");
|
||||
areaInterface->call("setShowLanguageList", showLanguageList);
|
||||
UkccCommon::buriedSettings(name(), QString("Delete"), QString("clicked"), languageCode);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -272,7 +272,7 @@ void DateTime::connectUiSignals()
|
|||
QDateTime setdt(d, t);
|
||||
datetimeInterface->call("setTime", setdt.toSecsSinceEpoch() * G_TIME_SPAN_SECOND);
|
||||
});
|
||||
connect(datetimeUi, &DatetimeUi::timeModeChanged, this, [=](QString mode){
|
||||
connect(datetimeUi, &DatetimeUi::timeModeChanged, this, [=](int toggledBtn, QString mode){
|
||||
UkccCommon::buriedSettings(name(), "Set Time", QString("settings"), mode);
|
||||
QDBusReply<bool> reply;
|
||||
initNtpServer();
|
||||
|
@ -290,7 +290,10 @@ void DateTime::connectUiSignals()
|
|||
}
|
||||
}
|
||||
if (!reply.value()) {
|
||||
datetimeUi->setTimeMode(mode == "manual" ? "automatic" : "manual");
|
||||
if (mode == "manual" && toggledBtn == 1)
|
||||
datetimeUi->setTimeMode("automatic");
|
||||
else if (mode == "automatic" && toggledBtn == 0)
|
||||
datetimeUi->setTimeMode("manual");
|
||||
}
|
||||
});
|
||||
connect(datetimeUi, &DatetimeUi::ntpServerChanged, this, [=](QString server){
|
||||
|
|
|
@ -130,6 +130,7 @@ void DatetimeUi::initCurrentDate()
|
|||
updateDate();
|
||||
});
|
||||
connect(timeBtnGroup, QOverload<int, bool>::of(&QButtonGroup::buttonToggled), this, [=](int id, bool clicked){
|
||||
toggledBtn = id;
|
||||
if ((id == 0 && clicked) || (id == 1 && !clicked)) {
|
||||
ntpAddressFrame->hide();
|
||||
ntpSerWidget->hide();
|
||||
|
@ -195,9 +196,9 @@ void DatetimeUi::initSignals()
|
|||
if (id == 0) {
|
||||
syncResultLabel->setPixmap(QPixmap(""));
|
||||
syncResultLabel->setText("");
|
||||
Q_EMIT timeModeChanged("manual");
|
||||
Q_EMIT timeModeChanged(toggledBtn, "manual");
|
||||
} else {
|
||||
Q_EMIT timeModeChanged("automatic");
|
||||
Q_EMIT timeModeChanged(toggledBtn, "automatic");
|
||||
}
|
||||
});
|
||||
connect(changeTZbutton, &FixButton::clicked, this, &DatetimeUi::timezoneButtonClicked);
|
||||
|
@ -229,8 +230,10 @@ void DatetimeUi::setTimeMode(QString mode)
|
|||
{
|
||||
if (mode == "manual") {
|
||||
manualRadioButton->setChecked(true);
|
||||
toggledBtn = 0;
|
||||
} else {
|
||||
syncRadioButton->setChecked(true);
|
||||
toggledBtn = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -74,12 +74,13 @@ private:
|
|||
private:
|
||||
QString timezoneStr = "";
|
||||
QButtonGroup *timeBtnGroup = nullptr;
|
||||
int toggledBtn = -1;
|
||||
|
||||
Q_SIGNALS:
|
||||
// 时间日期改变
|
||||
void dateTimeChanged(QDate date, QTime time);
|
||||
// 时间模式改变
|
||||
void timeModeChanged(QString mode);
|
||||
void timeModeChanged(int id, QString mode);
|
||||
// 修改时区按钮点击
|
||||
void timezoneButtonClicked();
|
||||
// NTP服务器修改
|
||||
|
|
|
@ -109,6 +109,12 @@ void ShortcutInterface::updateShortcut()
|
|||
getShortcutThread();
|
||||
}
|
||||
|
||||
void ShortcutInterface::setSystemShortcut(const QString &key, const QString &value)
|
||||
{
|
||||
QGSettings generalShort(KEYBINDINGS_DESKTOP_SCHEMA);
|
||||
generalShort.set(key, value);
|
||||
}
|
||||
|
||||
QMap<QString, QString> ShortcutInterface:: MergerOfTheSamekind(QMap<QString, QString> desktopMap)
|
||||
{
|
||||
QMap<QString, QString>::iterator it = desktopMap.begin();
|
||||
|
@ -159,7 +165,8 @@ void ShortcutInterface::buildGeneralWidget(QString schema, QMap<QString, QString
|
|||
i18nKey = const_cast<char *>(g_dgettext(ba.data(), g_settings_schema_key_get_summary(keyObj)));
|
||||
QStringPair shortcut;
|
||||
shortcut.name = QString(i18nKey);
|
||||
shortcut.key = getShowShortcutString(it.value());
|
||||
shortcut.key = it.value();
|
||||
shortcut.mediakey = it.key();
|
||||
systemShortcutList.append(shortcut);
|
||||
g_settings_schema_key_unref(keyObj);
|
||||
}
|
||||
|
@ -169,24 +176,23 @@ void ShortcutInterface::buildGeneralWidget(QString schema, QMap<QString, QString
|
|||
}
|
||||
|
||||
QString ShortcutInterface::getShowShortcutString(QString src) {
|
||||
if (src.contains("Meta")) {
|
||||
src.replace("Meta", "Win");
|
||||
}
|
||||
if (src.contains("Start")) {
|
||||
src.replace("Start", "Win");
|
||||
}
|
||||
src.replace("<","");
|
||||
src.replace(">"," ");
|
||||
src.replace(" or ",tr(" or "));
|
||||
QStringList temp_list = src.split(" ");
|
||||
QString str;
|
||||
for(qint32 i = 0; i < temp_list.count(); i++) {
|
||||
str += temp_list.at(i)
|
||||
.left(1).toUpper() +
|
||||
temp_list.at(i)
|
||||
.mid(1, temp_list.at(i).length() - 1).toLower();
|
||||
.left(1).toUpper() +
|
||||
temp_list.at(i)
|
||||
.mid(1, temp_list.at(i).length() - 1);
|
||||
str += " ";
|
||||
}
|
||||
str.replace("Or","or");
|
||||
if (str.contains("Prtsc")) {
|
||||
str.replace("Prtsc", "PrtSc");
|
||||
}
|
||||
if (str.contains("Print")) {
|
||||
str.replace("Print", "PrtSc");
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
|
|
@ -22,11 +22,13 @@ public Q_SLOTS:
|
|||
QList<QStringPair> getCustomShortcut();
|
||||
QList<KeyEntry> getSystemShortcutEntry();
|
||||
QList<KeyEntry> getCustomShortcutEntry();
|
||||
|
||||
void updateShortcut();
|
||||
void setSystemShortcut(const QString &key, const QString &value);
|
||||
|
||||
private:
|
||||
QList<KeyEntry> systemEntries;
|
||||
QList<KeyEntry> customEntries;
|
||||
QList<KeyEntry> systemEntries;
|
||||
QList<KeyEntry> customEntries;
|
||||
QList<QStringPair> systemShortcutList;
|
||||
QList<QStringPair> customShortcutList;
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ const QDBusArgument &operator<<(QDBusArgument &argument, const QStringPair &stri
|
|||
argument.beginStructure();
|
||||
argument << string.name;
|
||||
argument << string.key;
|
||||
argument << string.mediakey;
|
||||
argument.endStructure();
|
||||
return argument;
|
||||
}
|
||||
|
@ -14,6 +15,7 @@ const QDBusArgument &operator>>(const QDBusArgument &argument, QStringPair &stri
|
|||
argument.beginStructure();
|
||||
argument >> string.name;
|
||||
argument >> string.key;
|
||||
argument >> string.mediakey;
|
||||
argument.endStructure();
|
||||
return argument;
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ typedef struct
|
|||
{
|
||||
QString name;
|
||||
QString key;
|
||||
QString mediakey;
|
||||
}QStringPair;
|
||||
|
||||
const QDBusArgument &operator<<(QDBusArgument &argument, const QStringPair &string);
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<extra-contents_path>/About/Memory</extra-contents_path>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="399"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="405"/>
|
||||
<source>Disk</source>
|
||||
<translation>ཁབ་ལེན་གྱི་ཁབ་ལེན་</translation>
|
||||
</message>
|
||||
|
@ -101,7 +101,7 @@
|
|||
<translation type="vanished">སྤྱོད་མཁན་གྱི་ལག་དེབ་ལ་གཟིགས>></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="534"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="543"/>
|
||||
<source>Version</source>
|
||||
<translation>པར་གཞི།</translation>
|
||||
</message>
|
||||
|
@ -128,12 +128,12 @@
|
|||
<translation type="obsolete">པར་དབང ©་2009-%1 བསེ་རུ་མཉེན་པོ།. སོར་ཉར་བྱས་པའི་ཁེ་དབང་ཡོད་ཚད། {2020.?}</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="536"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="545"/>
|
||||
<source>Status</source>
|
||||
<translation>གནས་ཚུལ་གྱི་གནས་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="538"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="547"/>
|
||||
<source>Serial</source>
|
||||
<translation>གོ་རིམ་ལྟར་ན།</translation>
|
||||
</message>
|
||||
|
@ -152,49 +152,49 @@
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="242"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="447"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="456"/>
|
||||
<source>Extend</source>
|
||||
<translation>དུས་འགྱངས་བྱ་དགོས</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="271"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="277"/>
|
||||
<source>Kylin Linux Desktop (Touch Screen) V10 (SP1)</source>
|
||||
<translation>ཆི་ལིན་གྱི་ཅོག་ངོས་ V10(SP1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="273"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="279"/>
|
||||
<source>Kylin Linux Desktop (Tablet) V10 (SP1)</source>
|
||||
<translation>ཆི་ལིན་གྱི་ཅོག་ངོས་ V10(SP1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="279"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="285"/>
|
||||
<source>Kylin Linux Desktop V10 (SP1)</source>
|
||||
<translation>ཆི་ལིན་གྱི་ཅོག་ངོས་ V10(SP1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="392"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="401"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="398"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="407"/>
|
||||
<source>avaliable</source>
|
||||
<translation>འགན་འཁྲི་འཁུར་དགོས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="446"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="542"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="455"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="551"/>
|
||||
<source>expired</source>
|
||||
<translation>དུས་བཀག་ཐིམ་པ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="507"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="516"/>
|
||||
<source>The system needs to be restarted to set the HostName, whether to reboot</source>
|
||||
<translation>མ་ལག་འདི་བསྐྱར་དུ་འགོ་ཚུགས་ནས་གཙོ་སྐྱོང་བྱེད་མཁན་གྱི་མིང་གཏན་འཁེལ་བྱ་དགོས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="508"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="517"/>
|
||||
<source>Reboot Now</source>
|
||||
<translation>ད་ལྟ་བསྐྱར་དུ་ལས་ཀ་བྱེད་དགོས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="509"/>
|
||||
<location filename="../../../plugins/system/about/about.cpp" line="518"/>
|
||||
<source>Reboot Later</source>
|
||||
<translation>རྗེས་སུ་ཡང་བསྐྱར་ཐེངས་གཅིག་ལ་བསྐྱར་</translation>
|
||||
</message>
|
||||
|
@ -334,7 +334,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/aboutui.cpp" line="167"/>
|
||||
<source>OpenKylin</source>
|
||||
<source>openKylin</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -584,7 +584,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.ui" line="348"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="265"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="266"/>
|
||||
<source>Cancel</source>
|
||||
<translation>ཕྱིར་འཐེན།</translation>
|
||||
</message>
|
||||
|
@ -599,60 +599,60 @@
|
|||
<translation>མགྱོགས་ལམ་ཁ་སྣོན་བྱས་པ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="85"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="86"/>
|
||||
<source>Please enter a shortcut</source>
|
||||
<translation>མྱུར་བགྲོད་གཞུང་ལམ་ནང་དུ་འཛུལ་རོགས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="223"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="224"/>
|
||||
<source>Desktop files(*.desktop)</source>
|
||||
<translation>ཅོག་ངོས་ཡིག་ཆ་(*.desktop)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="264"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="265"/>
|
||||
<source>select desktop</source>
|
||||
<translation>ཅོག་ཙེའི་སྟེང་ནས་གདམ་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="301"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="322"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="333"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="302"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="323"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="334"/>
|
||||
<source>Invalid application</source>
|
||||
<translation>གོ་མི་ཆོད་པའི་ཉེར་སྤྱོད།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="303"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="318"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="329"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="304"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="319"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="330"/>
|
||||
<source>Shortcut conflict</source>
|
||||
<translation>མྱུར་བགྲོད་གདོང་གཏུག</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="305"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="320"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="331"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="306"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="321"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="332"/>
|
||||
<source>Invalid shortcut</source>
|
||||
<translation>གོ་མི་ཆོད་པའི་མྱུར་བགྲོད་གཞུང་ལམ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="308"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="315"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="336"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="309"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="316"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="337"/>
|
||||
<source>Name repetition</source>
|
||||
<translation>མིང་བསྐྱར་ཟློས་བྱེད་པ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="342"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="343"/>
|
||||
<source>Unknown error</source>
|
||||
<translation>ཤེས་མེད་པའི་ནོར་འཁྲུལ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="518"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="519"/>
|
||||
<source>Shortcut cannot be empty</source>
|
||||
<translation>མྱུར་ལམ་ནི་སྟོང་བ་ཡིན་མི་སྲིད།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="522"/>
|
||||
<location filename="../../../plugins/devices/shortcut/addshortcutdialog.cpp" line="523"/>
|
||||
<source>Name cannot be empty</source>
|
||||
<translation>མིང་སྟོང་པ་ཡིན་མི་སྲིད།</translation>
|
||||
</message>
|
||||
|
@ -793,7 +793,7 @@
|
|||
<translation type="vanished">བསྡུས་གཟུགས་རྒྱ་ཡིག་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="375"/>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="377"/>
|
||||
<source>English</source>
|
||||
<translation>དབྱིན་སྐད།</translation>
|
||||
</message>
|
||||
|
@ -822,42 +822,42 @@
|
|||
<translation>གཟའ་ཉི་མ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="373"/>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="375"/>
|
||||
<source>Simplified Chinese</source>
|
||||
<translation>བསྡུས་གཟུགས་རྒྱ་ཡིག་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="377"/>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="379"/>
|
||||
<source>Tibetan</source>
|
||||
<translation>བོད་ཡིག</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="390"/>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="392"/>
|
||||
<source>Modify the current region need to logout to take effect, whether to logout?</source>
|
||||
<translation>ད་ལྟའི་ས་ཁོངས་ལ་བཟོ་བཅོས་བརྒྱབ་ན་ད་གཟོད་ནུས་པ་ཐོན་ཐུབ། ཐོ་འགོད་བྱེད་དགོས་སམ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="391"/>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="393"/>
|
||||
<source>Logout later</source>
|
||||
<translation>རྗེས་སུ་ཐོ་འགོད་བྱེད་པ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="392"/>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="394"/>
|
||||
<source>Logout now</source>
|
||||
<translation>ད་ལྟ་ཐོ་འགོད་བྱེད་བཞིན་ཡོད།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="394"/>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="396"/>
|
||||
<source>Modify the first language need to reboot to take effect, whether to reboot?</source>
|
||||
<translation>སྐད་རིགས་དང་པོར་བཟོ་བཅོས་བརྒྱབ་ན་ད་གཟོད་ནུས་པ་ཐོན་ཐུབ། བསྐྱར་དུ་ཐོན་ཐུབ་མིན་ལ་བཟོ་བཅོས་རྒྱག་དགོས་སམ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="395"/>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="397"/>
|
||||
<source>Reboot later</source>
|
||||
<translation>རྗེས་སུ་ཡང་བསྐྱར་ཐེངས་གཅིག་ལ་བསྐྱར་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="396"/>
|
||||
<location filename="../../../plugins/time-language/area/area.cpp" line="398"/>
|
||||
<source>Reboot now</source>
|
||||
<translation>ད་ལྟ་བསྐྱར་དུ་འཁོར་བ།</translation>
|
||||
</message>
|
||||
|
@ -2254,13 +2254,13 @@ change system settings</source>
|
|||
<translation type="vanished">དུས་ཚོད་བསྒྱུར་བཅོས་བྱ་དགོས</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/datetime/datetime.cpp" line="324"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetime.cpp" line="331"/>
|
||||
<source>Add Timezone</source>
|
||||
<translation>དུས་ཚོད་ཀྱི་ཁྱབ་ཁུལ་ཁ་སྣོན</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/datetime/datetime.cpp" line="196"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetime.cpp" line="326"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetime.cpp" line="333"/>
|
||||
<source>Change Timezone</source>
|
||||
<translation>དུས་ཚོད་བསྒྱུར་བཅོས་བྱ་དགོས།</translation>
|
||||
</message>
|
||||
|
@ -2318,39 +2318,39 @@ change system settings</source>
|
|||
<extra-contents_path>/Date/Set Date Manually</extra-contents_path>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="156"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="157"/>
|
||||
<source>Server Address</source>
|
||||
<translation>ཞབས་ཞུའི་ས་གནས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="158"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="159"/>
|
||||
<source>Required</source>
|
||||
<translation>བླང་བྱ་བཏོན་པ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="159"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="160"/>
|
||||
<source>Save</source>
|
||||
<translation>གྲོན་ཆུང་བྱེད་དགོས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="163"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="261"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="164"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="264"/>
|
||||
<source>Customize</source>
|
||||
<translation>ཡུལ་སྲོལ་གོམས་གཤིས་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="183"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="184"/>
|
||||
<source>Other Timezone</source>
|
||||
<translation>དུས་ཚོད་གཞན་དག</translation>
|
||||
<extra-contents_path>/Date/Other Timezone</extra-contents_path>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="250"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="253"/>
|
||||
<source>Sync failed</source>
|
||||
<translation>དུས་མཉམ་དུ་ཕམ་ཉེས་བྱུང་བ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="260"/>
|
||||
<location filename="../../../plugins/time-language/datetime/datetimeui.cpp" line="263"/>
|
||||
<source>Default</source>
|
||||
<translation>ཁ་ཆད་དང་འགལ་</translation>
|
||||
</message>
|
||||
|
@ -4100,12 +4100,16 @@ change system settings</source>
|
|||
<translation>གཏན་འཁེལ་བྱ་དགོས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/privacydialog.cpp" line="26"/>
|
||||
<location filename="../../../plugins/system/about/privacydialog.cpp" line="73"/>
|
||||
<source>End User License Agreement and Privacy Policy Statement of openKylin</source>
|
||||
<translation>ཅིན་ལིན་གྱི་སྤྱོད་མཁན་གྱི་ཆོག་འཐུས་གྲོས་མཐུན་དང་གསང་བའི་སྲིད་ཇུས་ཀྱི་གསལ་བསྒྲགས་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/privacydialog.cpp" line="75"/>
|
||||
<source>End User License Agreement and Privacy Policy Statement of Kylin</source>
|
||||
<translation>ཅིན་ལིན་གྱི་སྤྱོད་མཁན་གྱི་ཆོག་འཐུས་གྲོས་མཐུན་དང་གསང་བའི་སྲིད་ཇུས་ཀྱི་གསལ་བསྒྲགས་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/privacydialog.cpp" line="31"/>
|
||||
<source>Dear users of Kylin operating system and relevant products,
|
||||
This agreement describes your rights, obligations and prerequisites for your use of this product. Please read the clauses of the Agreement and the supplementary license (hereinafter collectively referred to as “the Agreement”) and the privacy policy statement for Kylin operating system (hereinafter referred to as “the Statement”).
|
||||
“This product” in the Agreement and the Statement refers to “Kylin operating system software product” developed, produced and released by Kylinsoft Co., Ltd. and used for handling the office work or building the information infrastructure for enterprises and governments. “We” refers to Kylinsoft Co., Ltd. “You” refers to the users who pay the license fee and use the Kylin operating system and relevant products.
|
||||
|
@ -4276,7 +4280,7 @@ Fax:
|
|||
|
||||
Company website: www.kylinos.cn
|
||||
E-mail: support@kylinos.cn</source>
|
||||
<translation>ཅིན་ལིན་གྱི་བཀོལ་སྤྱོད་མ་ལག་དང་འབྲེལ་ཡོད་ཐོན་རྫས་ཀྱི་སྙིང་ཉེ་བའི་སྤྱོད་མཁན།
|
||||
<translation type="vanished">ཅིན་ལིན་གྱི་བཀོལ་སྤྱོད་མ་ལག་དང་འབྲེལ་ཡོད་ཐོན་རྫས་ཀྱི་སྙིང་ཉེ་བའི་སྤྱོད་མཁན།
|
||||
གྲོས་མཐུན་འདིས་ཁྱེད་ཚོས་ཐོན་རྫས་འདི་བཀོལ་སྤྱོད་བྱེད་པའི་ཁེ་དབང་དང་། འོས་འགན། སྔོན་འགྲོའི་ཆ་རྐྱེན་བཅས་གསལ་བཤད་བྱས་ཡོད། ཁྱེད་ཀྱིས་གྲོས་མཐུན་གྱི་དོན་ཚན་དང་ཁ་གསབ་ཆོག་འཐུས་ལག་ཁྱེར་(གཤམ་དུ་ཐུན་མོང་དུ་"གྲོས་མཐུན་"ཞེས་འབོད་པ་)དང་ཁེ་ལིན་གྱི་བཀོལ་སྤྱོད་མ་ལག་གི་གསང་བའི་སྲིད་ཇུས་གསལ་བསྒྲགས་(གཤམ་དུ་"གསལ་བསྒྲགས་"ཞེས་འབོད་རྒྱུ་)ཀློག་རོགས།
|
||||
《ཆོད་ཡིག་》དང་《གསལ་བསྒྲགས་》ནང་གི་"ཐོན་རྫས་འདི་"ཞེས་པ་ནི་ཁེ་ལིན་སའོ་ཧྥུ་མ་རྐང་ཚད་ཡོད་ཀུང་སིས་གསར་སྤེལ་དང་། ཐོན་སྐྱེད། ཁྱབ་བསྒྲགས་བཅས་བྱས་པའི་"ཁེ་ལིན་གྱི་བཀོལ་སྤྱོད་མ་ལག་གི་མཉེན་ཆས་ཐོན་རྫས་"ལ་ཟེར། "ང་ཚོ་"ཞེས་པ་ནི་ཁེ་ལིན་སའོ་ཧྥུ་མ་རྐང་ཚད་ཡོད་ཀུང་སིའི་"ཁྱོད་"ཞེས་པ་ནི་ཁེ་ལིན་གྱི་བཀོལ་སྤྱོད་མ་ལག་དང་འབྲེལ་ཡོད་ཐོན་རྫས་བེད་སྤྱོད་བྱེད་མཁན་ལ་ཟེར།
|
||||
|
||||
|
@ -4310,7 +4314,7 @@ II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
|||
《ཀྲུང་ཧྭ་མི་དམངས་སྤྱི་མཐུན་རྒྱལ་ཁབ་ཀྱི་དྲ་རྒྱའི་བདེ་འཇགས་བཅའ་ཁྲིམས་》ཀྱི་དོན་ཚན་དོན་དྲུག་པའི་ནང་གསེས་དོན་ཚན་ལྔ་པའི་གཏན་འབེབས་གཞིར་བཟུང་མི་སྒེར་གྱི་ཆ་འཕྲིན།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/system/about/privacydialog.cpp" line="298"/>
|
||||
<location filename="../../../plugins/system/about/privacydialog.cpp" line="34"/>
|
||||
<source>Kylinsoft Co., Ltd.</source>
|
||||
<translation>ཅིན་ལིན་སའོ་ཧྥུ་མ་རྐང་ཚད་ཡོད་ཀུང་སི།</translation>
|
||||
</message>
|
||||
|
@ -4644,17 +4648,17 @@ II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
|||
<translation type="vanished">བོད་ཡིག</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcut.cpp" line="177"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcut.cpp" line="186"/>
|
||||
<source>Customize Shortcut</source>
|
||||
<translation>མགྱོགས་ལམ་གཏན་འཁེལ་བྱ་དགོས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="158"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="455"/>
|
||||
<source>Edit Shortcut</source>
|
||||
<translation>མགྱོགས་ལམ་རྩོམ་སྒྲིག་བྱེད་པ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/application/autoboot/autoboot.cpp" line="372"/>
|
||||
<location filename="../../../plugins/application/autoboot/autoboot.cpp" line="373"/>
|
||||
<source>Programs are not allowed to be added.</source>
|
||||
<translation>གོ་རིམ་ཁ་སྣོན་བྱས་མི་ཆོག</translation>
|
||||
</message>
|
||||
|
@ -4760,37 +4764,37 @@ II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
|||
<translation type="vanished">གཏན་ནས་བྱེད་མི་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="170"/>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="172"/>
|
||||
<source>Wallpaper files(*.jpg *.jpeg *.bmp *.dib *.png *.jfif *.jpe *.gif *.tif *.tiff *.wdp)</source>
|
||||
<translation>Wallpaper files (*.jpg *.jpeg *.bmp *.dib *.png *.jfif *jpe *.gif *.tif *.tiff *wdp)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="211"/>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="213"/>
|
||||
<source>select custom wallpaper file</source>
|
||||
<translation>ཡུལ་སྲོལ་གོམས་གཤིས་ཀྱི་གྱང་ཤོག་ཡིག་ཆ་བདམས་པ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="212"/>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="214"/>
|
||||
<source>Select</source>
|
||||
<translation>བདམས་ཐོན་བྱུང་བ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="213"/>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="215"/>
|
||||
<source>Position: </source>
|
||||
<translation>གོ་གནས་ནི། </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="214"/>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="216"/>
|
||||
<source>FileName: </source>
|
||||
<translation>ཡིག་ཆའི་མིང་ནི། </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="215"/>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="217"/>
|
||||
<source>FileType: </source>
|
||||
<translation>ཡིག་ཆའི་རིགས་དབྱིབས་ནི། </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="216"/>
|
||||
<location filename="../../../plugins/personalized/screenlock/screenlock.cpp" line="218"/>
|
||||
<source>Cancel</source>
|
||||
<translation>ཕྱིར་འཐེན།</translation>
|
||||
</message>
|
||||
|
@ -5265,7 +5269,7 @@ II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
|||
<translation type="vanished">འགག་སྒོའི་མྱུར་ལམ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcut.cpp" line="39"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcut.cpp" line="38"/>
|
||||
<source>Shortcut</source>
|
||||
<translation>མྱུར་བགྲོད་གཞུང་ལམ།</translation>
|
||||
</message>
|
||||
|
@ -5295,37 +5299,74 @@ II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
|||
<context>
|
||||
<name>ShortcutInterface</name>
|
||||
<message>
|
||||
<location filename="../../../registeredSession/plugins/shortcut/shortcutinterface.cpp" line="174"/>
|
||||
<source> or </source>
|
||||
<translation> ཡང་ན་དེ་ལྟར་ </translation>
|
||||
<translation type="vanished"> ཡང་ན་དེ་ལྟར་ </translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ShortcutUi</name>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="34"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="33"/>
|
||||
<source>System Shortcut</source>
|
||||
<translation>མ་ལག་གི་མྱུར་ལམ།</translation>
|
||||
<extra-contents_path>/Shortcut/System Shortcut</extra-contents_path>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="47"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="46"/>
|
||||
<source>Customize Shortcut</source>
|
||||
<translation>མགྱོགས་ལམ་གཏན་འཁེལ་བྱ་དགོས།</translation>
|
||||
<extra-contents_path>/Shortcut/Customize Shortcut</extra-contents_path>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="133"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="77"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="81"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="98"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="102"/>
|
||||
<source>Null</source>
|
||||
<translation>སྟོང། </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="217"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="345"/>
|
||||
<source>Cancel</source>
|
||||
<translation>མེད་པར་བཟོ་བ། </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="218"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="346"/>
|
||||
<source>Use</source>
|
||||
<translation>བཀོལ་སྤྱོད། </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="219"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="347"/>
|
||||
<source>Shortcut key conflict, use it?</source>
|
||||
<translation>བཟུང་སྤྱོད་མིན་བཀོལ་སྤྱོད། </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="220"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="348"/>
|
||||
<source>%1 occuied, using this combination will invalidate %2</source>
|
||||
<translation>%1བཟུང་སྤྱོད་འགྲོ་བ་གོ་མི་ཆོད་པ། %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="243"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="378"/>
|
||||
<source>Shortcut "%1" occuied, please change the key combination</source>
|
||||
<translation>"%1"བཟུང་སྤྱོད་ཞུ་བཟོ་བཅོས། </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="430"/>
|
||||
<source>Edit</source>
|
||||
<translation>རྩོམ་སྒྲིག</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="134"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="431"/>
|
||||
<source>Delete</source>
|
||||
<translation>བསུབ་པ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="287"/>
|
||||
<location filename="../../../plugins/devices/shortcut/shortcutui.cpp" line="590"/>
|
||||
<source> or </source>
|
||||
<translation> ཡང་ན་དེ་ལྟར་ </translation>
|
||||
</message>
|
||||
|
@ -5463,7 +5504,7 @@ II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="110"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="521"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="522"/>
|
||||
<source>Theme</source>
|
||||
<translation>བརྗོད་བྱ་གཙོ་བོ།</translation>
|
||||
</message>
|
||||
|
@ -5493,116 +5534,116 @@ II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
|||
<translation>ཁུ་རུའི་རིགས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="593"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="594"/>
|
||||
<source>Other</source>
|
||||
<translation>དེ་མིན།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="597"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="600"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="598"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="601"/>
|
||||
<source>Set</source>
|
||||
<translation>གཏན་འཁེལ་བྱ་དགོས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="595"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="596"/>
|
||||
<source>Wallpaper</source>
|
||||
<translation>གྱང་ཤོག</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="598"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="599"/>
|
||||
<source>Beep</source>
|
||||
<translation>སྦྲང་མ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="924"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="925"/>
|
||||
<source>Blue-Crystal</source>
|
||||
<translation>ཁ་དོག་སྔོན་པོའི་ཆུ་ཤེལ་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="926"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1002"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="927"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1003"/>
|
||||
<source>Light-Seeking</source>
|
||||
<translation>འོད་ཟེར་འཚོལ་བ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="928"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="929"/>
|
||||
<source>DMZ-Black</source>
|
||||
<translation>DMZ-ནག་པོ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="930"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="931"/>
|
||||
<source>DMZ-White</source>
|
||||
<translation>DMZ-མི་དཀར</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="932"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="933"/>
|
||||
<source>Dark-Sense</source>
|
||||
<translation>མུན་ནག་གི་ཚོར་སྣང་།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="998"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1002"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1008"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="999"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1003"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1009"/>
|
||||
<source>basic</source>
|
||||
<translation>གཞི་རྩའི་ཆ་ནས</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1000"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1001"/>
|
||||
<source>Classic</source>
|
||||
<translation>གནའ་གཞུང་།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1000"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1001"/>
|
||||
<source>classic</source>
|
||||
<translation>གནའ་གཞུང་།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1004"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1005"/>
|
||||
<source>HeYin</source>
|
||||
<translation>ཧའེ་དབྱིན།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1006"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1007"/>
|
||||
<source>hp</source>
|
||||
<translation>hp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1008"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1009"/>
|
||||
<source>ukui</source>
|
||||
<translation>ཝུའུ་ཁི་ལན་གྱིས་བཤད་རྒྱུར</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1010"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1011"/>
|
||||
<source>daybreakBlue</source>
|
||||
<translation>ཉི་མ་ཤར་བའི་པུའུ་ལའེ་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1012"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1013"/>
|
||||
<source>jamPurple</source>
|
||||
<translation>ཤིང་ཏོག་བསྣུར་མ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1014"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1015"/>
|
||||
<source>magenta</source>
|
||||
<translation>མེ་དམར།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1016"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1017"/>
|
||||
<source>sunRed</source>
|
||||
<translation>ཉི་མ་ཤར་བ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1018"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1019"/>
|
||||
<source>sunsetOrange</source>
|
||||
<translation>ཉི་མ་ནུབ་པའི་ཨོ་ལན་ཀེ་ལན།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1020"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1021"/>
|
||||
<source>dustGold</source>
|
||||
<translation>གད་སྙིགས་བླུགས་སྣ་ཚོགས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1022"/>
|
||||
<location filename="../../../plugins/personalized/theme/theme.cpp" line="1023"/>
|
||||
<source>polarGreen</source>
|
||||
<translation>གླིང་སྣེའི་ཀེ་ལིན།</translation>
|
||||
</message>
|
||||
|
@ -6196,7 +6237,7 @@ II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
|||
<translation type="vanished">དཔེ་དབྱིབས་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="243"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="247"/>
|
||||
<source>Cancel</source>
|
||||
<translation>ཕྱིར་འཐེན།</translation>
|
||||
</message>
|
||||
|
@ -6254,32 +6295,32 @@ II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
|||
<translation>ཁྱབ་ཁོངས་ལས་བརྒལ་བ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="198"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="202"/>
|
||||
<source>Wallpaper files(*.jpg *.jpeg *.bmp *.dib *.png *.jfif *.jpe *.gif *.tif *.tiff *.wdp)</source>
|
||||
<translation>Wallpaper files (*.jpg *.jpeg *.bmp *.dib *.png *.jfif *jpe *.gif *.tif *.tiff *wdp)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="238"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="242"/>
|
||||
<source>select custom wallpaper file</source>
|
||||
<translation>ཡུལ་སྲོལ་གོམས་གཤིས་ཀྱི་གྱང་ཤོག་ཡིག་ཆ་བདམས་པ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="239"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="243"/>
|
||||
<source>Select</source>
|
||||
<translation>བདམས་ཐོན་བྱུང་བ།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="240"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="244"/>
|
||||
<source>Position: </source>
|
||||
<translation>གོ་གནས་ནི། </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="241"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="245"/>
|
||||
<source>FileName: </source>
|
||||
<translation>ཡིག་ཆའི་མིང་ནི། </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="242"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaper.cpp" line="246"/>
|
||||
<source>FileType: </source>
|
||||
<translation>ཡིག་ཆའི་རིགས་དབྱིབས་ནི། </translation>
|
||||
</message>
|
||||
|
@ -6287,34 +6328,34 @@ II.Javaལག་རྩལ་གྱི་ཚད་བཀག
|
|||
<context>
|
||||
<name>WallpaperUi</name>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="26"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="27"/>
|
||||
<source>Background</source>
|
||||
<translation>རྒྱབ་ལྗོངས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="27"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="28"/>
|
||||
<source>Type</source>
|
||||
<translation>དཔེ་དབྱིབས་</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="62"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="63"/>
|
||||
<source>Desktop Background</source>
|
||||
<translation>ཅོག་ཙེའི་རྒྱབ་ལྗོངས།</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="89"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="90"/>
|
||||
<source>Local Pictures</source>
|
||||
<translation>ས་གནས་ཀྱི་རི་མོ།</translation>
|
||||
<extra-contents_path>/Wallpaper/Local Pictures</extra-contents_path>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="91"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="92"/>
|
||||
<source>Online Pictures</source>
|
||||
<translation>དྲ་ཐོག་པར་རིས།</translation>
|
||||
<extra-contents_path>/Wallpaper/Online Pictures</extra-contents_path>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="93"/>
|
||||
<location filename="../../../plugins/personalized/wallpaper/wallpaperui.cpp" line="94"/>
|
||||
<source>Reset To Default</source>
|
||||
<translation>བསྐྱར་དུ་ཁ་ཆད་དང་འགལ་བའི་གནས་</translation>
|
||||
<extra-contents_path>/Wallpaper/Reset To Default</extra-contents_path>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue