This commit is contained in:
luxoueyi 2021-10-29 11:11:20 +08:00
parent bbdf5b14a3
commit 5d102687f3
182 changed files with 452 additions and 30546 deletions

23
.qmake.stash Normal file
View File

@ -0,0 +1,23 @@
QMAKE_CXX.QT_COMPILER_STDCXX = 201402L
QMAKE_CXX.QMAKE_GCC_MAJOR_VERSION = 9
QMAKE_CXX.QMAKE_GCC_MINOR_VERSION = 3
QMAKE_CXX.QMAKE_GCC_PATCH_VERSION = 0
QMAKE_CXX.COMPILER_MACROS = \
QT_COMPILER_STDCXX \
QMAKE_GCC_MAJOR_VERSION \
QMAKE_GCC_MINOR_VERSION \
QMAKE_GCC_PATCH_VERSION
QMAKE_CXX.INCDIRS = \
/usr/include/c++/9 \
/usr/include/x86_64-linux-gnu/c++/9 \
/usr/include/c++/9/backward \
/usr/lib/gcc/x86_64-linux-gnu/9/include \
/usr/local/include \
/usr/include/x86_64-linux-gnu \
/usr/include
QMAKE_CXX.LIBDIRS = \
/usr/lib/gcc/x86_64-linux-gnu/9 \
/usr/lib/x86_64-linux-gnu \
/usr/lib \
/lib/x86_64-linux-gnu \
/lib

View File

@ -1,103 +0,0 @@
# AlertWatcher.py
# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 4; coding: utf-8 -*-
#
# Copyright (c) 2010 Mohamed Amine IL Idrissi
#
# Author: Mohamed Amine IL Idrissi <ilidrissiamine@gmail.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
from __future__ import absolute_import
import logging
from gi.repository import GObject
import dbus
from dbus.mainloop.glib import DBusGMainLoop
class AlertWatcher(GObject.GObject):
""" a class that checks for alerts and reports them, like a battery
or network warning """
__gsignals__ = {"network-alert": (GObject.SignalFlags.RUN_FIRST,
None,
(GObject.TYPE_INT,)),
"battery-alert": (GObject.SignalFlags.RUN_FIRST,
None,
(GObject.TYPE_BOOLEAN,)),
"network-3g-alert": (GObject.SignalFlags.RUN_FIRST,
None,
(GObject.TYPE_BOOLEAN,
GObject.TYPE_BOOLEAN,)),
}
def __init__(self):
GObject.GObject.__init__(self)
DBusGMainLoop(set_as_default=True)
self.bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM)
# make it always connected if NM isn't available
self.network_state = 3
def check_alert_state(self):
try:
#network
obj = self.bus.get_object("org.freedesktop.NetworkManager",
"/org/freedesktop/NetworkManager")
obj.connect_to_signal(
"StateChanged",
self._on_network_state_changed,
dbus_interface="org.freedesktop.NetworkManager")
interface = dbus.Interface(obj, "org.freedesktop.DBus.Properties")
self.network_state = interface.Get(
"org.freedesktop.NetworkManager", "State")
self._network_alert(self.network_state)
# power
# obj = self.bus.get_object('org.freedesktop.UPower',
# '/org/freedesktop/UPower')
# obj.connect_to_signal("Changed", self._power_changed,
# dbus_interface="org.freedesktop.UPower")
# self._power_changed()
# 3g
# self._update_3g_state()
except dbus.exceptions.DBusException as e:
logging.error(str(e))
pass
def _on_network_state_changed(self, state):
self._network_alert(state)
# self._update_3g_state()
# def _update_3g_state(self):
# from .roam import NetworkManagerHelper
# nm = NetworkManagerHelper()
# on_3g = nm.is_active_connection_gsm_or_cdma()
# is_roaming = nm.is_active_connection_gsm_or_cdma_roaming()
# self._network_3g_alert(on_3g, is_roaming)
# def _network_3g_alert(self, on_3g, is_roaming):
# self.emit("network-3g-alert", on_3g, is_roaming)
def _network_alert(self, state):
self.network_state = state
self.emit("network-alert", state)
# def _power_changed(self):
# obj = self.bus.get_object("org.freedesktop.UPower",
# "/org/freedesktop/UPower")
# interface = dbus.Interface(obj, "org.freedesktop.DBus.Properties")
# on_battery = interface.Get("org.freedesktop.UPower", "OnBattery")
# self.emit("battery-alert", on_battery)

View File

@ -1,328 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import os
import re
import json
import shutil
import sqlite3
import logging
import datetime
from gettext import gettext as _
import apt_pkg
DB_FILE = os.path.join("/var/cache/kylin-system-updater/kylin-system-updater.db")
INSTALLED_LIST = [{"item": "errorcode", "type": "int", "default": "0"}]
DISPALY_LIST = []
MODE_DEFAULT_STATUS = -1
#部分升级
MODE_UPGRADE_PARTIAL = 0
#全部升级
MODE_UPGRADE_ALL = 1
#系统全盘升级
MODE_UPGRADE_SYSTEM = 2
#后端内部安装包使用
MODE_UPGRADE_SINGLE = 3
class Sqlite3Server(object):
def __init__(self, window_main):
self.connect = None
self.window_main = window_main
logging.info(_("Init Sqlite3Server..."))
self.init_sqlit()
# 初始化连接数据库
def init_sqlit(self):
logging.info(_("Initialize the connection to the database ..."))
try:
if os.path.isfile(DB_FILE):
self.connect = sqlite3.connect(DB_FILE, check_same_thread=False)
self.cursor = self.connect.cursor()
self.insert_new_field()
else:
if not os.path.isdir(os.path.dirname(DB_FILE)):
os.makedirs(os.path.dirname(DB_FILE))
shutil.copy("/usr/share/kylin-system-updater/kylin-system-updater.db", os.path.dirname(DB_FILE))
self.connect = sqlite3.connect(DB_FILE, check_same_thread=False)
self.cursor = self.connect.cursor()
self.insert_new_field()
except Exception as e:
logging.error(_("Failed to initialize the database: %s"), str(e))
return False
logging.info(_("Connecting to the database successfully."))
return True
# 数据库表格中动态增加新的字段用于扩展
def insert_new_field(self):
if len(INSTALLED_LIST) == 0 and len(DISPALY_LIST) == 0:
return
self.cursor.execute("select sql from sqlite_master where name='installed'")
installed_sql = self.cursor.fetchone()[0]
pattern = re.compile(r'\"\w+\"')
installed_sql_list = pattern.findall(installed_sql)
for value in INSTALLED_LIST:
for field in installed_sql_list:
if value["item"] == str(field).strip("\""):
break
elif field == installed_sql_list[len(installed_sql_list) - 1]:
try:
if value["default"] != "":
sql = 'alter table installed add column "' + value["item"] + '" ' + value["type"] \
+ ' default ' + str(value["default"])
else:
sql = 'alter table installed add column "' + value["item"] + '" ' + value["type"]
self.cursor.execute(sql)
logging.info(_("installed table insert new field: %s"), value["item"])
except:
logging.error(_("installed table failed to insert a new field:"), value["item"], exc_info=True)
self.cursor.execute("select sql from sqlite_master where name='display'")
display_sql = self.cursor.fetchone()[0]
pattern = re.compile(r'\"\w+\"')
display_sql_list = pattern.findall(display_sql)
for value in DISPALY_LIST:
for field in display_sql_list:
if value["item"] == str(field).strip("\""):
break
elif field == display_sql_list[len(display_sql_list) - 1]:
try:
if value["default"] != "":
sql = 'alter table display add column "' + value["item"] + '" ' + value["type"] \
+ ' default ' + str(value["default"])
else:
sql = 'alter table installed add column "' + value["item"] + '" ' + value["type"]
self.cursor.execute(sql)
logging.info(_("display table insert new field %s"), value["item"])
except:
logging.error(_("display table failed to insert a new field %s"), value["item"], exc_info=True)
# 写入数据到installed表中
def insert_into_installed(self, *args, **kwargs):
self.cursor.execute(
"insert into installed (appname, version, time, description, icon, statue, keyword, errorcode) values(?,"
"?,?,?,?,?,?,?)",
(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]))
self.connect.commit()
# 写入数据到display表中
def insert_into_display(self, *args, **kwargs):
sql = "update display set " + args[0] + "='" + args[1] + "' where id = 1"
self.cursor.execute(sql)
self.connect.commit()
# 写入updateinfos表中
def insert_into_updateinfo(self, *args, **kwargs):
logging.info(_("Inserting data into the database... "))
try:
self.cursor.execute(
"insert into updateinfos (appname, version, description, date, status, keyword, errorcode) values(?,"
"?,?,?,?,?,?)",
(args[0], args[1], args[2], args[3], args[4], args[5], args[6]))
self.connect.commit()
except Exception as e:
logging.error("Insert error: %s.", str(e))
logging.info(_("Data insertion complete ."))
# 接收更新列表与信息,生成数据并插入数据库中
def insert_info(self, mode, pkg_list=[], pkg_group=[], success = False, error_string = '', error_desc = ''):
errstr = error_string + " " + error_desc
status = " "
time = datetime.datetime.now()
timestr = datetime.datetime.strftime(time, "%Y-%m-%d %H:%M:%S")
# 更新列表空,无更新
if not pkg_list and pkg_group:
logging.info("There is no update.")
return True
if success:
status = 'success'
else:
status = 'failed'
# 判断更新方式
if mode == MODE_UPGRADE_PARTIAL: # 部分更新
# 判断更新包为单包或更新组
if pkg_group:
# 更新组
pkgname = pkg_group[0]
pkgversion,pkgdescription = self.GetGroupmsg(pkgname)
elif pkg_list:
# 单包更新 # 获取单包数据插入数据库
pkgname = pkg_list[0]
try:
pkg = self.window_main.cache[pkgname]
except Exception as e:
logging.error(_("%s could not be detected in the source because the source was changed or for other reasons."), \
str(pkgname))
pkgversion = str(pkg.candidate.version)
pkgdescription = str(pkg.candidate.raw_description)
try:
self.insert_into_updateinfo(pkgname, pkgversion, pkgdescription, timestr, status, "1", errstr)
# FIXME: 发送插入数据库成功的信号local_upgrade_list
self.window_main.dbusController.UpdateSqlitSingle(pkgname, timestr)
# 数据库文件被删除或者新增字段导致需要重新初始化数据库再写入
except Exception as e:
self.init_sqlit()
self.insert_into_updateinfo(pkgname, pkgversion, pkgdescription, timestr, status, "1", errstr)
# FIXME: 这里也需要, 发送插入数据库成功的信号
self.window_main.dbusController.UpdateSqlitSingle(pkgname, timestr)
elif mode == MODE_UPGRADE_ALL: # 系统升级
# # insert signal deb first
for i in pkg_list:
try:
pkg = self.window_main.cache[i]
except Exception as e:
logging.error(_("%s could not be detected in the source because the source was changed or for other reasons."), \
str(i))
continue
if not pkg:
continue
pkgversion = str(pkg.candidate.version)
pkgdescription = str(pkg.candidate.raw_description)
try:
self.insert_into_updateinfo(str(i), pkgversion, pkgdescription, timestr, status, "1", errstr)
self.window_main.dbusController.UpdateSqlitSingle(str(i), timestr)
# 数据库文件被删除或者新增字段导致需要重新初始化数据库再写入
except Exception as e:
self.init_sqlit()
self.insert_into_updateinfo(str(i), pkgversion, pkgdescription, timestr, status, "1", errstr)
self.window_main.dbusController.UpdateSqlitSingle(str(i), timestr)
# insert group deb next
for i in pkg_group:
# FIXME: 获取组信息
pkgversion,pkgdescription = self.GetGroupmsg(i)
try:
self.insert_into_updateinfo(str(i), pkgversion, pkgdescription, timestr, status, "1", errstr)
group_list = []
self.window_main.dbusController.UpdateSqlitSingle(str(i), timestr)
# 数据库文件被删除或者新增字段导致需要重新初始化数据库再写入
except Exception as e:
self.init_sqlit()
self.insert_into_updateinfo(str(i), pkgversion, pkgdescription, timestr, status, "1", errstr)
self.window_main.dbusController.UpdateSqlitSingle(str(i), timestr)
elif mode == MODE_UPGRADE_SYSTEM: # 全盘升级
pkgs_install,pkgs_upgrade,pkgs_remove = self.refreshpkglist()
pkg_list = list(set(pkgs_upgrade).union(set(pkgs_install)))
for i in pkg_list:
try:
pkg = self.window_main.cache[i]
except Exception as e:
logging.error(_("%s could not be detected in the source because the source was changed or for other reasons."), \
str(i))
pkgversion = str(pkg.candidate.version)
pkgdescription = str(pkg.candidate.raw_description)
try:
self.insert_into_updateinfo(str(i), pkgversion, pkgdescription, timestr, status, "1", errstr)
# 数据库文件被删除或者新增字段导致需要重新初始化数据库再写入
except Exception as e:
self.init_sqlit()
self.insert_into_updateinfo(str(i), pkgversion, pkgdescription, timestr, status, "1", errstr)
self.window_main.dbusController.UpdateSqlitSingle(str(i), timestr)
self.window_main.dbusController.UpdateSqlitSingle(str(i), timestr)
else:
logging.warning("Cache is None.")
# 获取group信息
def GetGroupmsg(self, appname):
INPUT_CONFIG_PATH = apt_pkg.config.find_dir("Kylin-system-updater::InputConfigDir",
'/usr/share/kylin-update-desktop-config/data')
jsonfile = appname+".json"
files = os.listdir(INPUT_CONFIG_PATH) #获取文件夹中所有文件
if jsonfile in files: # 存在
# 读取组JSON文件
with open(INPUT_CONFIG_PATH+"/"+jsonfile, "r") as f:
try :
data = json.load(f)
except json.JSONDecodeError as e:
logging.error(str(e))
try:
version = data['version']
tmpdescription = data['description']
except Exception as e:
logging.error(str(e))
if "zh_CN" in tmpdescription and "en_US" in tmpdescription:
description = tmpdescription["zh_CN"] + ": " + tmpdescription["en_US"]
return (version,description)
else: # 不存在
return (None, None)
def refreshpkglist(self):
pkgs_install = []
pkgs_upgrade = []
pkgs_remove = []
for pkg in self.window_main.cache:
try:
if pkg.marked_install:
pkgs_install.append(pkg.name)
if pkg.marked_upgrade:
pkgs_upgrade.append(pkg.name)
elif pkg.marked_delete:
pkgs_remove.append(pkg.name)
except KeyError:
# pkg missing from fresh_cache can't be modified
pass
return pkgs_install,pkgs_upgrade,pkgs_remove
#查找数据库
def find_msg_from_datebase(self, action = 'check',table = 'updateinfos', cid = 0):
# 查询table
try:
self.cursor.execute("select sql from sqlite_master")
count_tables = 0
while True:
all_table = self.cursor.fetchone()
if all_table == None:
break
tmpstr = str(all_table)
if ("sqlite_sequence") in tmpstr or '(None,)' in tmpstr:
continue
else:
# logging.info(tmpstr)
count_tables = count_tables + 1
pass
logging.info("%d tables were found.", count_tables)
except Exception as e:
logging.error("Check tables error: %s", str(e))
# 检测历史更新升级
try:
sql = "SELECT COUNT(*) FROM updateinfos "
self.cursor.execute(sql)
update_count = self.cursor.fetchone()[0]
logging.info("%d history updates detected.", update_count)
except Exception as e:
logging.error("Check update error: %s", str(e))
# 获取第cid次更新
# if cid != 0 and cid > 0:
# sql = "SELECT * FROM updateinfos where id='"+str(cid-1)+"'"
# try:
# self.cursor.execute(sql)
# update_count = self.cursor.fetchone()
# logging.info("\n\n### Update %d =============>\n### date:%s\n### status:%s\n### keyword:%s\n### errorcode:%s", \
# update_count[0]+1, \
# update_count[2], \
# update_count[3], \
# update_count[4], \
# update_count[5])
# updatelists = json.loads(update_count[1])
# logging.info("update_lists: ------------------------>")
# for i in updatelists:
# for key in i:
# logging.info("package name:\n[ %s ].\n----- version: %s\n----- description: %s\n----- icon: %s\n----- action: %s\n", \
# key, \
# i[key]['version'], \
# i[key]['description'], \
# i[key]['icon'], \
# i[key]['action'])
# print("\n")
# except Exception as e:
# logging.error("Get update error: %s", str(e))
def listtojsonstr(lists):
import json
jsonfile = json.dumps(lists)
return jsonfile

File diff suppressed because it is too large Load Diff

View File

@ -1,44 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
#参考文档: https://cuiqingcai.com/6080.html
import apt_pkg
import os
path = apt_pkg.config.find_dir("Kylin-system-updater::LogDir",
"/var/log/kylin-system-updater/")
numlist = []
def get_FileSize(filePath):
fsize = os.path.getsize(filePath)
fsize = fsize / float(1024 * 1024)
return round(fsize, 2)
#日志回滚
def get_logfile():
if not os.path.exists(path):
os.makedirs(path)
#优先获取当前未写满100M的日志编号文件
for i in os.listdir(path):
if "kylin-system-updater.log." in os.path.basename(path + i):
numlist.append((path + i).split(".")[2])
if get_FileSize(path + i) < 10:
return path + i
#获取1-5未使用的最小数字的标号作为日志文件
for i in range(1, 6):
if str(i) not in numlist:
return(os.path.join(path, ("kylin-system-updater.log.%s") % i))
try:
#编号1-5日志文件均写满时删除第一个往前移动日志编号获取最后一个编号作为日志文件
if len(numlist) != 0:
os.remove(os.path.join(path, "kylin-system-updater.log.1"))
for i in range(2, 6):
os.rename(os.path.join(path, ("kylin-system-updater.log.%s") % i),
os.path.join(path, ("kylin-system-updater.log.%s") % (i - 1)))
return os.path.join(path, "kylin-system-updater.log.5")
#默认情况下未生成任何日志时使用编号1的日志文件
else:
return os.path.join(path, "kylin-system-updater.log.1")
except:
return os.path.join(path, "kylin-system-updater.log.1")

View File

@ -1,433 +0,0 @@
# MyCache.py
# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 4; coding: utf-8 -*-
#
# Copyright (c) 2004-2008 Canonical
#
# Author: Michael Vogt <mvo@debian.org>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
from __future__ import absolute_import, print_function
import warnings
warnings.filterwarnings("ignore", "apt API not stable yet", FutureWarning)
import apt
import apt_pkg
import logging
import os
from urllib.error import HTTPError
from urllib.request import urlopen
from urllib.parse import urlsplit
from http.client import BadStatusLine
import socket
import re
import SystemUpdater.Core.DistUpgradeCache
from gettext import gettext as _
try:
from launchpadlib.launchpad import Launchpad
except ImportError:
Launchpad = None
CHANGELOGS_POOL = "https://changelogs.ubuntu.com/changelogs/pool/"
CHANGELOGS_URI = CHANGELOGS_POOL + "%s/%s/%s/%s_%s/%s"
class HttpsChangelogsUnsupportedError(Exception):
""" https changelogs with credentials are unsupported because of the
lack of certitifcation validation in urllib2 which allows MITM
attacks to steal the credentials
"""
pass
class MyCache(SystemUpdater.Core.DistUpgradeCache.MyCache):
CHANGELOG_ORIGIN = "Ubuntu"
def __init__(self, progress, rootdir=None):
apt.Cache.__init__(self, progress, rootdir)
# save for later
self.rootdir = rootdir
# raise if we have packages in reqreinst state
# and let the caller deal with that (runs partial upgrade)
assert len(self.req_reinstall_pkgs) == 0
# check if the dpkg journal is ok (we need to do that here
# too because libapt will only do it when it tries to lock
# the packaging system)
assert(not self._dpkgJournalDirty())
# init the regular cache
self._initDepCache()
self.all_changes = {}
self.all_news = {}
# on broken packages, try to fix via saveDistUpgrade()
if self._depcache.broken_count > 0:
self.saveDistUpgrade()
assert (self._depcache.broken_count == 0
and self._depcache.del_count == 0)
self.launchpad = None
def _dpkgJournalDirty(self):
"""
test if the dpkg journal is dirty
(similar to debSystem::CheckUpdates)
"""
d = os.path.dirname(
apt_pkg.config.find_file("Dir::State::status")) + "/updates"
for f in os.listdir(d):
if re.match("[0-9]+", f):
return True
return False
def _initDepCache(self):
self._depcache.read_pinfile()
self._depcache.init()
def clear(self):
self._initDepCache()
@property
def required_download(self):
""" get the size of the packages that are required to download """
pm = apt_pkg.PackageManager(self._depcache)
fetcher = apt_pkg.Acquire()
pm.get_archives(fetcher, self._list, self._records)
return fetcher.fetch_needed
@property
def install_count(self):
return self._depcache.inst_count
def keep_count(self):
return self._depcache.keep_count
@property
def del_count(self):
return self._depcache.del_count
def _check_dependencies(self, target, deps):
"""Return True if any of the dependencies in deps match target."""
# TODO: handle virtual packages
for dep_or in deps:
if not dep_or:
continue
match = True
for base_dep in dep_or:
if (base_dep.name != target.package.shortname
or not apt_pkg.check_dep(
target.version, base_dep.relation, base_dep.version)):
match = False
if match:
return True
return False
def find_removal_justification(self, pkg):
target = pkg.installed
if not target:
return False
for cpkg in self:
candidate = cpkg.candidate
if candidate is not None:
if (self._check_dependencies(
target, candidate.get_dependencies("Conflicts"))
and self._check_dependencies(
target, candidate.get_dependencies("Replaces"))):
logging.info(
"%s Conflicts/Replaces %s; allowing removal" % (
candidate.package.shortname, pkg.shortname))
return True
return False
def saveDistUpgrade(self):
""" this functions mimics a upgrade but will never remove anything """
#upgrade(True) 为True时使用dist-upgrade进行升级
self._depcache.upgrade(True)
wouldDelete = self._depcache.del_count
wouldDelete = 0
if wouldDelete > 0:
deleted_pkgs = [pkg for pkg in self if pkg.marked_delete]
assert wouldDelete == len(deleted_pkgs)
for pkg in deleted_pkgs:
if self.find_removal_justification(pkg):
wouldDelete -= 1
if wouldDelete > 0:
self.clear()
assert (self._depcache.broken_count == 0
and self._depcache.del_count == 0)
# else:
# assert self._depcache.broken_count == 0
self._depcache.upgrade()
return wouldDelete
def _strip_epoch(self, verstr):
" strip of the epoch "
vers_no_epoch = verstr.split(":")
if len(vers_no_epoch) > 1:
verstr = "".join(vers_no_epoch[1:])
return verstr
def _get_changelog_or_news(self, name, fname, strict_versioning=False,
changelogs_uri=None):
" helper that fetches the file in question "
# don't touch the gui in this function, it needs to be thread-safe
pkg = self[name]
# get the src package name
srcpkg = pkg.candidate.source_name
# assume "main" section
src_section = "main"
# use the section of the candidate as a starting point
section = pkg._pcache._depcache.get_candidate_ver(pkg._pkg).section
# get the source version
srcver_epoch = pkg.candidate.source_version
srcver = self._strip_epoch(srcver_epoch)
split_section = section.split("/")
if len(split_section) > 1:
src_section = split_section[0]
# lib is handled special
prefix = srcpkg[0]
if srcpkg.startswith("lib"):
prefix = "lib" + srcpkg[3]
# the changelogs_uri argument overrides the default changelogs_uri,
# this is useful for e.g. PPAs where we construct the changelogs
# path differently
if changelogs_uri:
uri = changelogs_uri
else:
uri = CHANGELOGS_URI % (src_section, prefix, srcpkg, srcpkg,
srcver, fname)
# https uris are not supported when they contain a username/password
# because the urllib2 https implementation will not check certificates
# and so its possible to do a man-in-the-middle attack to steal the
# credentials
res = urlsplit(uri)
if res.scheme == "https" and res.username:
raise HttpsChangelogsUnsupportedError(
"https locations with username/password are not"
"supported to fetch changelogs")
# print("Trying: %s " % uri)
changelog = urlopen(uri)
#print(changelog.read())
# do only get the lines that are new
alllines = ""
regexp = "^%s \\((.*)\\)(.*)$" % (re.escape(srcpkg))
while True:
line = changelog.readline().decode("UTF-8", "replace")
if line == "":
break
match = re.match(regexp, line)
if match:
# strip epoch from installed version
# and from changelog too
installed = getattr(pkg.installed, "version", None)
if installed and ":" in installed:
installed = installed.split(":", 1)[1]
changelogver = match.group(1)
if changelogver and ":" in changelogver:
changelogver = changelogver.split(":", 1)[1]
# we test for "==" here for changelogs
# to ensure that the version
# is actually really in the changelog - if not
# just display it all, this catches cases like:
# gcc-defaults with "binver=4.3.1" and srcver=1.76
#
# for NEWS.Debian we do require the changelogver > installed
if strict_versioning:
if (installed
and apt_pkg.version_compare(changelogver,
installed) < 0):
break
else:
if (installed
and apt_pkg.version_compare(changelogver,
installed) == 0):
break
alllines = alllines + line
return alllines
def _extract_ppa_changelog_uri(self, name):
"""Return the changelog URI from the Launchpad API
Return None in case of an error.
"""
if not Launchpad:
logging.warning("Launchpadlib not available, cannot retrieve PPA "
"changelog")
return None
cdt = self[name].candidate
for uri in cdt.uris:
if urlsplit(uri).hostname != 'ppa.launchpad.net':
continue
match = re.search('http.*/(.*)/(.*)/ubuntu/.*', uri)
if match is not None:
user, ppa = match.group(1), match.group(2)
break
else:
logging.error("Unable to find a valid PPA candidate URL.")
return
# Login on launchpad if we are not already
if self.launchpad is None:
self.launchpad = Launchpad.login_anonymously('update-manager',
'production',
version='devel')
archive = self.launchpad.archives.getByReference(
reference='~%s/ubuntu/%s' % (user, ppa)
)
if archive is None:
logging.error("Unable to retrieve the archive from the Launchpad "
"API.")
return
spphs = archive.getPublishedSources(source_name=cdt.source_name,
exact_match=True,
version=cdt.source_version)
if not spphs:
logging.error("No published sources were retrieved from the "
"Launchpad API.")
return
return spphs[0].changelogUrl()
def _guess_third_party_changelogs_uri_by_source(self, name):
pkg = self[name]
deb_uri = pkg.candidate.uri
if deb_uri is None:
return None
srcrec = pkg.candidate.record.get("Source")
if not srcrec:
return None
# srcpkg can be "apt" or "gcc-default (1.0)"
srcpkg = srcrec.split("(")[0].strip()
if "(" in srcrec:
srcver = srcrec.split("(")[1].rstrip(")")
else:
srcver = pkg.candidate.source_version
base_uri = deb_uri.rpartition("/")[0]
return base_uri + "/%s_%s.changelog" % (srcpkg, srcver)
def _guess_third_party_changelogs_uri_by_binary(self, name):
""" guess changelogs uri based on ArchiveURI by replacing .deb
with .changelog
"""
# there is always a pkg and a pkg.candidate, no need to add
# check here
pkg = self[name]
deb_uri = pkg.candidate.uri
if deb_uri:
return "%s.changelog" % deb_uri.rsplit(".", 1)[0]
return None
def get_news_and_changelog(self, name, lock):
self.get_news(name)
self.get_changelog(name)
try:
lock.release()
except Exception:
pass
def get_news(self, name):
" get the NEWS.Debian file from the changelogs location "
try:
news = self._get_changelog_or_news(name, "NEWS.Debian", True)
except Exception:
return
if news:
self.all_news[name] = news
def _fetch_changelog_for_third_party_package(self, name, origins):
# Special case for PPAs
changelogs_uri_ppa = None
for origin in origins:
if origin.origin.startswith('LP-PPA-'):
try:
changelogs_uri_ppa = self._extract_ppa_changelog_uri(name)
break
except Exception:
logging.exception("Unable to connect to the Launchpad "
"API.")
# Try non official changelog location
changelogs_uri_binary = \
self._guess_third_party_changelogs_uri_by_binary(name)
changelogs_uri_source = \
self._guess_third_party_changelogs_uri_by_source(name)
error_message = ""
for changelogs_uri in [changelogs_uri_ppa,
changelogs_uri_binary,
changelogs_uri_source]:
if changelogs_uri:
try:
changelog = self._get_changelog_or_news(
name, "changelog", False, changelogs_uri)
self.all_changes[name] += changelog
except (HTTPError, HttpsChangelogsUnsupportedError):
# no changelogs_uri or 404
error_message = _(
"This update does not come from a "
"source that supports changelogs.")
except (IOError, BadStatusLine, socket.error):
# network errors and others
logging.exception("error on changelog fetching")
error_message = _(
"Failed to download the list of changes. \n"
"Please check your Internet connection.")
self.all_changes[name] += error_message
def get_changelog(self, name):
" get the changelog file from the changelog location "
origins = self[name].candidate.origins
self.all_changes[name] = _("Changes for %s versions:\n"
"Installed version: %s\n"
"Available version: %s\n\n") % \
(name, getattr(self[name].installed, "version", None),
self[name].candidate.version)
if self.CHANGELOG_ORIGIN not in [o.origin for o in origins]:
self._fetch_changelog_for_third_party_package(name, origins)
return
# fixup epoch handling version
srcpkg = self[name].candidate.source_name
srcver_epoch = self[name].candidate.source_version.replace(':', '%3A')
try:
changelog = self._get_changelog_or_news(name, "changelog")
if len(changelog) == 0:
changelog = _("The changelog does not contain any relevant "
"changes.\n\n"
"Please use http://launchpad.net/ubuntu/+source/"
"%s/%s/+changelog\n"
"until the changes become available or try "
"again later.") % (srcpkg, srcver_epoch)
except HTTPError:
changelog = _("The list of changes is not available yet.\n\n"
"Please use http://launchpad.net/ubuntu/+source/"
"%s/%s/+changelog\n"
"until the changes become available or try again "
"later.") % (srcpkg, srcver_epoch)
except (IOError, BadStatusLine, socket.error) as e:
print("caught exception: ", e)
changelog = _("Failed to download the list "
"of changes. \nPlease "
"check your Internet "
"connection.")
self.all_changes[name] += changelog

View File

@ -1,432 +0,0 @@
# UpdateList.py
# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 4; coding: utf-8 -*-
#
# Copyright (c) 2004-2013 Canonical
#
# Author: Michael Vogt <mvo@debian.org>
# Dylan McCall <dylanmccall@ubuntu.com>
# Michael Terry <michael.terry@canonical.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
from __future__ import print_function
from gettext import gettext as _
import logging
import os
import json
import yaml
import shutil
import apt_pkg
from gi.repository import Gio
from .filter import UpdateListFilterCache
OUTPUT_CONFIG_PATH = apt_pkg.config.find_dir("Kylin-system-updater::OutputConfigDir",
'/var/lib/kylin-system-updater')
INPUT_CONFIG_PATH = apt_pkg.config.find_dir("Kylin-system-updater::InputConfigDir",
'/usr/share/kylin-update-desktop-config/data')
IMPORTANT_LIST_PATH = apt_pkg.config.find_file("Kylin-system-updater::ImportantListDir",
"/var/lib/kylin-software-properties/template/important.list")
class LocalUpgradeDataList:
"""
Represent the (potentially partial) results of an unattended-upgrades
run
"""
def __init__(self,
upgrade_groups_pkgs={},
upgrade_groups=[],
single_pkgs=[],
adjust_pkgs=[],
):
#可升级的组列表
self.upgrade_groups = upgrade_groups
#组列表中包含的包
self.upgrade_groups_pkgs = upgrade_groups_pkgs
#推送的可升级的单包
self.single_pkgs = single_pkgs
#调整版本列表
self.adjust_pkgs = adjust_pkgs
class UpdateList():
def __init__(self,parent):
self.parent = parent
#所有的组升级安装列表
self.local_upgrade_data = LocalUpgradeDataList({},[],[],[])
self.fu = UpdateListFilterCache(self.parent)
if 'XDG_CURRENT_DESKTOP' in os.environ:
self.current_desktop = os.environ.get('XDG_CURRENT_DESKTOP')
else:
self.current_desktop = ''
if 'XDG_DATA_DIRS' in os.environ and os.environ['XDG_DATA_DIRS']:
data_dirs = os.environ['XDG_DATA_DIRS']
else:
data_dirs = '/usr/local/share/:/usr/share/'
self.application_dirs = [os.path.join(base, 'applications')
for base in data_dirs.split(':')]
#清空上次输出的分组JSON文件
def _empty_output_dir(self):
try:
if not os.path.exists(OUTPUT_CONFIG_PATH):
os.makedirs(OUTPUT_CONFIG_PATH)
logging.info('making the configuration file is complete...')
else:
shutil.rmtree(OUTPUT_CONFIG_PATH)
os.makedirs(OUTPUT_CONFIG_PATH)
logging.info('Emptying the configuration file is complete...')
except Exception as e:
logging.error(str(e))
def _read_important_list(self,cache,pkgs_upgrade):
header = ''
desc = ''
pkg_important_list = []
pkg_install_list = []
group_important_list = []
# 获取importantlist 本次更新推送
try:
with open(IMPORTANT_LIST_PATH, 'r') as f:
data = f.read()
important_list = data.split()
for pkg_name in important_list:
#检查是否在cache 没有在cache中属于组
if pkg_name in cache:
pkg_obj = cache[pkg_name]
#在可升级的列表当中 此步骤为了排除已安装不需要升级的
if pkg_obj.is_installed:
if pkg_obj in pkgs_upgrade:
pkg_important_list.append(pkg_obj.name)
pkgs_upgrade.remove(pkg_obj)
else:
pkg_install_list.append(pkg_obj)
else:
group_important_list.append(pkg_name)
if pkg_install_list != None:
#进行安装列表的过滤
pkg_install_list,adjust_pkgs = self.fu.check_in_allowed_origin(pkg_install_list)
self.local_upgrade_data.adjust_pkgs += adjust_pkgs
for pkg in pkg_install_list:
pkg.mark_install()
pkg_important_list.append(pkg.name)
logging.info("pkg_important_list: %a, group_important_list:%a",pkg_important_list,group_important_list)
return True,group_important_list,pkg_important_list,header,desc
except Exception as e:
header = _("read important list failed")
desc = str(e)
logging.error(header + desc)
return False,group_important_list,pkg_important_list,header,desc
def _make_pkg_info_json(self,cache,pkgs_list):
total_download_size = 0
total_installed_size = 0
pkgs_info_json = {}
for pkg_name in pkgs_list:
try:
pkg = cache[pkg_name]
#当前版本
cur_version = getattr(pkg.installed, "version", '')
new_version = getattr(pkg.candidate, "version", '')
#获取下载大小
download_size = getattr(pkg.candidate, "size", 0)
installed_size = getattr(pkg.candidate, "installed_size", 0)
total_download_size = total_download_size + download_size
total_installed_size = total_installed_size + installed_size
pkgs_info_json.update({pkg_name:{"cur_version":cur_version,"new_version":new_version,\
"download_size":download_size,"install_size":installed_size}})
except Exception as e:
logging.error("this package(%s) not in list and error mes:%s",pkg_name,e)
pkgs_info_json.update({"total_download_size":total_download_size})
pkgs_info_json.update({"total_install_size":total_installed_size})
return pkgs_info_json
#检查包是否在cache中 返回新得列表没 有安装的话才添加到列表
def _check_pkg_in_cache(self,cache,pkgs_list):
new_pkgs_list = []
for pkg_name in pkgs_list:
#检查是否在cache 以及 是否安装检查
if pkg_name in cache and not cache[pkg_name].is_installed:
new_pkgs_list.append(pkg_name)
else:
pass
# logging.info("this package(%s) not in list ",pkg_name)
return new_pkgs_list
def _make_group_output_json(self,data,data_yaml,upgrade_pkgs_json,install_pkgs_json):
groups_base_info = {}
output_json = {}
#FIXME: 确定输出文件的文件名 以及放置位置
output_config_name = OUTPUT_CONFIG_PATH + data['package'] + '.json'
#4、添加一些基础信息
groups_base_info.update({"package":data['package']})
groups_base_info.update({"new_version":data['version']})
groups_base_info.update({"name":data['name']})
groups_base_info.update({"description":data['description']})
groups_base_info.update({"icon":data['icon']})
#添加读yaml文件
groups_base_info.update({"changelog":data_yaml['changelog']})
#5、添加升级的内容
output_json.update(groups_base_info)
output_json.update({"upgrade_list":upgrade_pkgs_json})
output_json.update({"install_list":install_pkgs_json})
# output_json.update({"hold_list":hold_pkgs_list})
# output_json.update({"remove_list":remove_pkgs_list})
#6 产生JSON文件
with open(output_config_name, 'w', encoding='utf-8') as f:
json.dump(output_json, f, ensure_ascii=False, indent=4)
logging.info("Generate Jsonfile(%s) to complete... ",output_config_name)
def _make_groups_upgrade(self,cache,group_list, pkgs_upgrade = []):
try:
files = os.listdir(INPUT_CONFIG_PATH) #获得文件夹中所有文件的名称列表
for ifile in files:
#判是否是目录以及是否以JSON结尾
if ifile.endswith('.json'):
#读取组JSON文件
with open(INPUT_CONFIG_PATH+ifile,'r') as f:
try:
data = json.load(f)
except json.JSONDecodeError as exc:
logging.error(exc)
continue
group_name = data['package']
#读取组的yaml 文件的changelog的信息
with open(INPUT_CONFIG_PATH + group_name + ".yaml", "r") as stream:
try:
data_yaml = yaml.safe_load(stream)
except yaml.YAMLError as exc:
logging.error(exc)
continue
#过滤没有推送的配置文件
if not group_name in group_list:
continue
upgrade_pkgs_list = data['upgrade_list']
# hold_pkgs_list = data['hold_list']
#这个安装升级列表中包含当前系统的cache中没有的包 需要过滤
# remove_pkgs_list = data['remove_list']
#检查包是否在cache中 以及是否已经安装 没有安装的话才添加到列表
new_install_pkgs_list = self._check_pkg_in_cache(cache,data['install_list'])
#此在读important 是需要新安装的标记为install组中的重合去除
if new_install_pkgs_list != None:
install_pkg_obj = [cache[pkg] for pkg in new_install_pkgs_list]
#进行安装列表的过滤
install_pkg_obj,adjust_pkgs = self.fu.check_in_allowed_origin(install_pkg_obj)
self.local_upgrade_data.adjust_pkgs += adjust_pkgs
new_install_pkgs_list = []
for pkg in install_pkg_obj:
if pkg.marked_install:
continue
new_install_pkgs_list.append(pkg.name)
#进行交集 升级列表
upgrade_intersection_pkgs = list(set(pkgs_upgrade) & set(upgrade_pkgs_list))
#判断当前是否可升级或者新装的包
if len(new_install_pkgs_list) == 0 and len(upgrade_intersection_pkgs) == 0:
continue
#在总升级列表中移除这些包
for pkg in upgrade_intersection_pkgs:
pkgs_upgrade.remove(pkg)
#3、生成升级的包列表JSON
upgrade_pkgs_json = self._make_pkg_info_json(cache,upgrade_intersection_pkgs)
#2、生成安装的软件列表
install_pkgs_json = self._make_pkg_info_json(cache,new_install_pkgs_list)
#输出JSON配置文件
self._make_group_output_json(data,data_yaml,upgrade_pkgs_json,install_pkgs_json)
#添加到字典维护的升级列表
self.local_upgrade_data.upgrade_groups.append(group_name)
self.local_upgrade_data.upgrade_groups_pkgs.update({group_name:{"pkgs_upgrade":upgrade_intersection_pkgs,"pkgs_install":new_install_pkgs_list}})
logging.info("group(%s) upgrade:%d install:%d",group_name,len(upgrade_intersection_pkgs),len(new_install_pkgs_list))
else:
pass
except Exception as e:
logging.warning("Generate Jsonfile to failed... ")
logging.error(e)
def _rate_application_for_package(self, application, pkg):
score = 0
desktop_file = os.path.basename(application.get_filename())
application_id = os.path.splitext(desktop_file)[0]
if application.should_show():
score += 1
if application_id == pkg.name:
score += 5
return score
def _file_is_application(self, file_path):
# WARNING: This is called often if there's a lot of updates. A poor
# performing call here has a huge impact on the overall performance!
if not file_path.endswith(".desktop"):
# First the obvious case: If the path doesn't end in a .desktop
# extension, this isn't a desktop file.
return False
file_path = os.path.abspath(file_path)
for app_dir in self.application_dirs:
if file_path.startswith(app_dir):
return True
return False
def _get_application_for_package(self, pkg):
desktop_files = []
rated_applications = []
for installed_file in pkg.installed_files:
if self._file_is_application(installed_file):
desktop_files.append(installed_file)
for desktop_file in desktop_files:
try:
application = Gio.DesktopAppInfo.new_from_filename(
desktop_file)
application.set_desktop_env(self.current_desktop)
except Exception as e:
logging.warning("Error loading .desktop file %s: %s" %
(desktop_file, e))
continue
score = self._rate_application_for_package(application, pkg)
if score > 0:
rated_applications.append((score, application))
rated_applications.sort(key=lambda app: app[0], reverse=True)
if len(rated_applications) > 0:
return rated_applications[0][1]
else:
return None
def _make_single_upgrade(self,cache,pkg_list):
try:
for pkg in pkg_list:
zh_name = ''
base_info = {}
output_json = {}
output_config_name = OUTPUT_CONFIG_PATH + pkg + '.json'
pkg_cache = cache[pkg]
#获取包的软件名称,从主题中读取,只有可升级,是软件的包才可以读取
if pkg_cache.is_installed:
app = self._get_application_for_package(pkg_cache)
if app is not None:
zh_name = app.get_display_name()
pkgs_json = self._make_pkg_info_json(cache,[pkg])
en_name = getattr(pkg_cache.candidate, "summary", '')
description_str = getattr(pkg_cache.candidate, "description", '')
#4、添加一些基础信息
base_info.update({"package":pkg})
base_info.update({"cur_version":getattr(pkg_cache.installed, "version", '')})
base_info.update({"new_version":getattr(pkg_cache.candidate, "version", '')})
base_info.update({"name":{"zh_CN":zh_name,"en_US":en_name}})
base_info.update({"description":{"zh_CN":description_str,"en_US":description_str}})
base_info.update({"icon":''})
#5、添加升级的内容
output_json.update(base_info)
if pkg_cache.is_installed:
output_json.update({"upgrade_list":pkgs_json})
output_json.update({"install_list":{}})
else:
output_json.update({"upgrade_list":{}})
output_json.update({"install_list":pkgs_json})
#产生JSON文件
with open(output_config_name, 'w', encoding='utf-8') as f:
json.dump(output_json, f, ensure_ascii=False, indent=4)
logging.info("Generate Jsonfile(%s) to complete... ",output_config_name)
except Exception as e:
logging.warning("Generate Jsonfile to failed... ")
logging.error(str(e))
def update(self,cache):
pkgs_upgrade = []
header = ''
desc = ''
#查找所有可升级的包
for pkg in cache:
try:
if pkg.is_upgradable and pkg.is_installed:
if getattr(pkg.candidate, "origins", None) is None:
logging.error("WARNING: upgradable but no candidate.origins?!?: ",
pkg.name)
continue
pkgs_upgrade.append(pkg)
except Exception as e:
logging.error(e)
logging.info("System all upgradeable packages:upgrade:%d ",len(pkgs_upgrade))
#源过滤 对升级列表
pkgs_upgrade,self.local_upgrade_data.adjust_pkgs = self.fu.check_in_allowed_origin(pkgs_upgrade)
success,group_important_list,self.local_upgrade_data.single_pkgs,header,desc = self._read_important_list(cache,pkgs_upgrade)
#important_list 为空时此次不需要升级
if success == True and not group_important_list and not self.local_upgrade_data.single_pkgs:
header = _("The software on this computer is up to date.")
desc = ""
return success,header,desc
elif success == False:
return success,header,desc
#清空输出的目录
self._empty_output_dir()
#产生单包的JSON
self._make_single_upgrade(cache,self.local_upgrade_data.single_pkgs)
#分组的包的JSON
self._make_groups_upgrade(cache,group_important_list,[pkg.name for pkg in pkgs_upgrade])
#是否存在可升级的组
if self.local_upgrade_data.upgrade_groups or self.local_upgrade_data.single_pkgs:
return True,header,desc
else:
header = _("The software on this computer is up to date.")
desc = ''
return True,header,desc

View File

@ -1,373 +0,0 @@
#!/usr/bin/python3
import apt
import apt_pkg
import fnmatch
import logging
import logging.handlers
import re
import os
import string
import subprocess
import json
try:
from typing import AbstractSet, DefaultDict, Dict, Iterable, List
AbstractSet # pyflakes
DefaultDict # pyflakes
Dict # pyflakes
Iterable # pyflakes
List # pyflakes
from typing import Set, Tuple, Union
Set # pyflakes
Tuple # pyflakes
except ImportError:
pass
from gettext import gettext as _
import apt
import apt_pkg
ImportantListPath="/var/lib/kylin-software-properties/template/important.list"
DesktopSystemPath="/usr/share/kylin-update-desktop-config/data/"
# no py3 lsb_release in debian :/
DISTRO_CODENAME = subprocess.check_output(
["lsb_release", "-c", "-s"], universal_newlines=True).strip() # type: str
DISTRO_DESC = subprocess.check_output(
["lsb_release", "-d", "-s"], universal_newlines=True).strip() # type: str
DISTRO_ID = subprocess.check_output(
["lsb_release", "-i", "-s"], universal_newlines=True).strip() # type: str
class UpdateListFilterCache(apt.Cache):
def __init__(self, window_main):
self.window_main = window_main
# whitelist
self.upgradeList = []
# 必须升级的包
self.installList = []
self.allowed_origins = get_allowed_origins()
self.allowed_origins = deleteDuplicatedElementFromList(self.allowed_origins)
logging.info(_("Allowed origins are: %s"),
self.allowed_origins)
self.blacklist = apt_pkg.config.value_list(
"Kylin-system-updater::Package-Blacklist")
self.blacklist = deleteDuplicatedElementFromList(self.blacklist)
self.whitelist = apt_pkg.config.value_list(
"Kylin-system-updater::Package-Whitelist")
self.whitelist = deleteDuplicatedElementFromList(self.whitelist)
self.strict_whitelist = apt_pkg.config.find_b(
"Kylin-system-updater::Package-Whitelist-Strict", False)
def checkInCache(self):
logging.info("start Check in cache")
tmplist = []
cache = apt.Cache()
for i in self.upgradeList:
try:
cache[i]
tmplist.append(i)
except Exception as e:
pass
self.upgradeList = tmplist
def initLocalPackagesList(self):
jsonfiles = []
tmplist = []
# 获取importantlist 本次更新推送
with open(ImportantListPath, 'r') as f:
text = f.read()
importantList = text.split()
logging.info("importantList: %s",importantList)
f.close()
if not importantList:
logging.error("importantList is empty")
exit(-1)
# 获取/usr/share/kylin-update-desktop-config/data/下所有json文件
for root,dirs,files in os.walk(DesktopSystemPath):
pass
for i in files:
if ".json" in i:
jsonfiles.append(i.split('.')[0])
# logging.info("all files: %s", jsonfiles)
# 找到importantlist中对应的json文件
for i in importantList:
if i not in jsonfiles:
# 说明这个是单独的包,不在分组中
# 加入更新列表
if i not in self.upgradeList:
self.upgradeList.append(i)
else:
# 在分组中
# 获取每个对应json文件中的upgrade_list
if i in jsonfiles:
filepath = os.path.join(DesktopSystemPath, i)
filepath = filepath+".json"
with open(filepath, 'r') as f:
pkgdict = f.read()
jsonfile = json.loads(pkgdict)
tmplist = jsonfile['install_list']
# print("\ntmplist: ", tmplist)
for j in tmplist:
if j not in self.upgradeList:
self.upgradeList.append(j)
f.close()
# logging.info("self.upgradeList: %s", self.upgradeList)
# 更改传入包列表经过源过滤返回的pkg中进行版本调整
def check_in_allowed_origin(self, pkg_lists):
new_upgrade_pkgs = []
adjust_candidate_pkgs = []
for pkg in pkg_lists:
try:
new_ver = ver_in_allowed_origin(pkg, self.allowed_origins)
if not pkg.installed: # 判断安装列表
if pkg.candidate == new_ver and pkg not in new_upgrade_pkgs:
new_upgrade_pkgs.append(pkg)
elif new_ver < pkg.candidate and pkg not in new_upgrade_pkgs:
logging.info("adjusting candidate version: %s" % new_ver)
pkg.candidate = new_ver
adjust_candidate_pkgs.append(pkg.name+"="+pkg.candidate.version)
new_upgrade_pkgs.append(pkg)
else: # 判断升级列表
if new_ver < pkg.candidate:
logging.info("adjusting candidate version: %s" % new_ver)
pkg.candidate = new_ver
adjust_candidate_pkgs.append(pkg.name+"="+pkg.candidate.version)
if pkg.is_upgradable:
new_upgrade_pkgs.append(pkg)
else:
continue
else:
if pkg.installed < pkg.candidate:
new_upgrade_pkgs.append(pkg)
except NoAllowedOriginError:
logging.error("Cannot found allowed version: %s", pkg.name)
continue
return (new_upgrade_pkgs, adjust_candidate_pkgs)
def is_pkgname_in_blacklist(self, pkgs):
blacklist_filter_pkgs = []
for pkg in pkgs:
if pkg.name in self.blacklist:
pass
else :
blacklist_filter_pkgs.append(pkg)
return blacklist_filter_pkgs
def is_pkgname_in_whitelist(self, pkgs):
whitelist_filter_upgrade_pkgs = []
for pkg in pkgs:
if pkg.name in self.upgradeList:
whitelist_filter_upgrade_pkgs.append(pkg)
else :
pkg.mark_keep()
pass
# print("skipping whitelist package %s" % pkg.name)
return whitelist_filter_upgrade_pkgs
# def try_to_upgrade(pkg, # type: apt.Package
# pkgs_to_upgrade, # type: List[apt.Package]
# pkgs_kept_back, # type: KeptPkgs
# allowed_origins, # type: List[str]
# ):
# # type: (...) -> None
# try:
# try:
# # try to adjust pkg itself first, if that throws an exception it
# # can't be upgraded on its own
# cache.adjust_candidate(pkg)
# if not pkg.is_upgradable:
# return
# except NoAllowedOriginError:
# return
# cache._cached_candidate_pkgnames.add(pkg.name)
# cache.mark_upgrade_adjusted(pkg, from_user=not pkg.is_auto_installed)
# if check_changes_for_sanity(cache, allowed_origins,
# blacklisted_pkgs, whitelisted_pkgs,
# pkg):
# # add to packages to upgrade
# pkgs_to_upgrade.append(pkg)
# # re-eval pkgs_kept_back as the resolver may fail to
# # directly upgrade a pkg, but that may work during
# # a subsequent operation, see debian bug #639840
# pkgs_to_upgrade.extend(pkgs_kept_back.pop_upgradable(cache))
# else:
# logging.debug("sanity check failed for: %s"
# % str({str(p.candidate)
# for p in cache.get_changes()}))
# rewind_cache(cache, pkgs_to_upgrade)
# pkgs_kept_back.add(pkg, cache)
# except (SystemError, NoAllowedOriginError) as e:
# # can't upgrade
# logging.warning(
# _("package %s upgradable but fails to "
# "be marked for upgrade (%s)"), pkg.name, e)
# rewind_cache(cache, pkgs_to_upgrade)
# pkgs_kept_back.add(pkg, cache)
def ver_in_allowed_origin(pkg, allow_origin):
# type: (apt.Package, List[str]) -> apt.package.Version
for ver in pkg.versions:
# ignore versions that the user marked with priority < 100
# (and ensure we have a python-apt that supports this)
try:
if ver.policy_priority < 100:
logging.debug("ignoring ver %s with priority < 0" % ver)
continue
except AttributeError:
pass
if is_in_allowed_origin(ver, allow_origin):
# leave as soon as we have the highest new candidate
return ver
raise NoAllowedOriginError()
def get_allowed_origins():
# type: () -> List[str]
""" return a list of allowed origins from apt.conf
This will take substitutions (like distro_id) into account.
"""
allowed_origins = get_allowed_origins_legacy()
key = "Kylin-system-updater::Origins-Pattern"
try:
for s in apt_pkg.config.value_list(key):
allowed_origins.append(substitute(s))
except ValueError:
print("Unable to parse %s." % key)
raise
return allowed_origins
def get_allowed_origins_legacy():
# type: () -> List[str]
""" legacy support for old Allowed-Origins var """
allowed_origins = [] # type: List[str]
key = "Kylin-system-updater::Allowed-Origins"
try:
for s in apt_pkg.config.value_list(key):
# if there is a ":" use that as seperator, else use spaces
if re.findall(r'(?<!\\):', s):
(distro_id, distro_codename) = re.split(r'(?<!\\):', s)
else:
(distro_id, distro_codename) = s.split()
# unescape "\:" back to ":"
distro_id = re.sub(r'\\:', ':', distro_id)
# escape "," (see LP: #824856) - can this be simpler?
distro_id = re.sub(r'([^\\]),', r'\1\\,', distro_id)
distro_codename = re.sub(r'([^\\]),', r'\1\\,', distro_codename)
# convert to new format
allowed_origins.append("o=%s,a=%s" % (substitute(distro_id),
substitute(distro_codename)))
except ValueError:
logging.error(_("Unable to parse %s." % key))
raise
return allowed_origins
def substitute(line):
# type: (str) -> str
""" substitude known mappings and return a new string
Currently supported ${distro-release}
"""
mapping = {"distro_codename": get_distro_codename(),
"distro_id": get_distro_id()}
return string.Template(line).substitute(mapping)
def get_distro_codename():
# type: () -> str
return DISTRO_CODENAME
def get_distro_id():
# type: () -> str
return DISTRO_ID
def is_in_allowed_origin(ver, allowed_origins):
# type: (apt.package.Version, List[str]) -> bool
if not ver:
return False
for origin in ver.origins:
if is_allowed_origin(origin, allowed_origins):
return True
return False
def is_allowed_origin(origin, allowed_origins):
# type: (Union[apt.package.Origin, apt_pkg.PackageFile], List[str]) -> bool
for allowed in allowed_origins:
if match_whitelist_string(allowed, origin):
return True
return False
def match_whitelist_string(whitelist, origin):
# type: (str, Union[apt.package.Origin, apt_pkg.PackageFile]) -> bool
"""
take a whitelist string in the form "origin=Debian,label=Debian-Security"
and match against the given python-apt origin. A empty whitelist string
never matches anything.
"""
whitelist = whitelist.strip()
if whitelist == "":
logging.warning("empty match string matches nothing")
return False
res = True
# make "\," the html quote equivalent
whitelist = whitelist.replace("\\,", "%2C")
for token in whitelist.split(","):
# strip and unquote the "," back
(what, value) = [s.strip().replace("%2C", ",")
for s in token.split("=")]
# logging.debug("matching %s=%s against %s" % (
# what, value, origin))
# support substitution here as well
value = substitute(value)
# first char is apt-cache policy output, send is the name
# in the Release file
if what in ("o", "origin"):
match = fnmatch.fnmatch(origin.origin, value)
elif what in ("l", "label"):
match = fnmatch.fnmatch(origin.label, value)
elif what in ("a", "suite", "archive"):
match = fnmatch.fnmatch(origin.archive, value)
elif what in ("c", "component"):
match = fnmatch.fnmatch(origin.component, value)
elif what in ("site",):
match = fnmatch.fnmatch(origin.site, value)
elif what in ("n", "codename",):
match = fnmatch.fnmatch(origin.codename, value)
else:
raise UnknownMatcherError(
"Unknown whitelist entry for matcher %s (token %s)" % (
what, token))
# update res
res = res and match
# logging.debug("matching %s=%s against %s" % (
# what, value, origin))
return res
def deleteDuplicatedElementFromList(list):
resultList = []
for item in list:
if not item in resultList:
resultList.append(item)
return resultList
class UnknownMatcherError(ValueError):
pass
class NoAllowedOriginError(ValueError):
pass

View File

@ -1,13 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
"""Main loop for aptdaemon."""
__all__ = ("mainloop", "get_main_loop")
from gi.repository import GLib
mainloop = GLib.MainLoop()
def get_main_loop():
"""Return the glib main loop as a singleton."""
return mainloop

View File

@ -1,212 +0,0 @@
# utils.py
# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 4; coding: utf-8 -*-
#
# Copyright (c) 2011 Canonical
#
# Author: Alex Chiang <achiang@canonical.com>
# Michael Vogt <michael.vogt@ubuntu.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
from __future__ import print_function
import dbus
import sys
class ModemManagerHelper(object):
# data taken from
# http://projects.gnome.org/NetworkManager/developers/mm-spec-04.html
MM_DBUS_IFACE = "org.freedesktop.ModemManager"
MM_DBUS_IFACE_MODEM = MM_DBUS_IFACE + ".Modem"
# MM_MODEM_TYPE
MM_MODEM_TYPE_GSM = 1
MM_MODEM_TYPE_CDMA = 2
# GSM
# Not registered, not searching for new operator to register.
MM_MODEM_GSM_NETWORK_REG_STATUS_IDLE = 0
# Registered on home network.
MM_MODEM_GSM_NETWORK_REG_STATUS_HOME = 1
# Not registered, searching for new operator to register with.
MM_MODEM_GSM_NETWORK_REG_STATUS_SEARCHING = 2
# Registration denied.
MM_MODEM_GSM_NETWORK_REG_STATUS_DENIED = 3
# Unknown registration status.
MM_MODEM_GSM_NETWORK_REG_STATUS_UNKNOWN = 4
# Registered on a roaming network.
MM_MODEM_GSM_NETWORK_REG_STATUS_ROAMING = 5
# CDMA
# Registration status is unknown or the device is not registered.
MM_MODEM_CDMA_REGISTRATION_STATE_UNKNOWN = 0
# Registered, but roaming status is unknown or cannot be provided
# by the device. The device may or may not be roaming.
MM_MODEM_CDMA_REGISTRATION_STATE_REGISTERED = 1
# Currently registered on the home network.
MM_MODEM_CDMA_REGISTRATION_STATE_HOME = 2
# Currently registered on a roaming network.
MM_MODEM_CDMA_REGISTRATION_STATE_ROAMING = 3
def __init__(self):
self.bus = dbus.SystemBus()
self.proxy = self.bus.get_object("org.freedesktop.ModemManager",
"/org/freedesktop/ModemManager")
modem_manager = dbus.Interface(self.proxy, self.MM_DBUS_IFACE)
self.modems = modem_manager.EnumerateDevices()
@staticmethod
def get_dbus_property(proxy, interface, property):
props = dbus.Interface(proxy, "org.freedesktop.DBus.Properties")
property = props.Get(interface, property)
return property
def is_gsm_roaming(self):
for m in self.modems:
dev = self.bus.get_object(self.MM_DBUS_IFACE, m)
type = self.get_dbus_property(dev, self.MM_DBUS_IFACE_MODEM,
"Type")
if type != self.MM_MODEM_TYPE_GSM:
continue
net = dbus.Interface(dev,
self.MM_DBUS_IFACE_MODEM + ".Gsm.Network")
reg = net.GetRegistrationInfo()
# Be conservative about roaming. If registration unknown,
# assume yes.
# MM_MODEM_GSM_NETWORK_REG_STATUS
if reg[0] in (self.MM_MODEM_GSM_NETWORK_REG_STATUS_UNKNOWN,
self.MM_MODEM_GSM_NETWORK_REG_STATUS_ROAMING):
return True
return False
def is_cdma_roaming(self):
for m in self.modems:
dev = self.bus.get_object(self.MM_DBUS_IFACE, m)
type = self.get_dbus_property(dev, self.MM_DBUS_IFACE_MODEM,
"Type")
if type != self.MM_MODEM_TYPE_CDMA:
continue
cdma = dbus.Interface(dev, self.MM_DBUS_IFACE_MODEM + ".Cdma")
(cmda_1x, evdo) = cdma.GetRegistrationState()
# Be conservative about roaming. If registration unknown,
# assume yes.
# MM_MODEM_CDMA_REGISTRATION_STATE
roaming_states = (self.MM_MODEM_CDMA_REGISTRATION_STATE_REGISTERED,
self.MM_MODEM_CDMA_REGISTRATION_STATE_ROAMING)
# evdo trumps cmda_1x (thanks to Mathieu Trudel-Lapierre)
if evdo in roaming_states:
return True
elif cmda_1x in roaming_states:
return True
return False
class NetworkManagerHelper(object):
NM_DBUS_IFACE = "org.freedesktop.NetworkManager"
# connection states
# Old enum values are for NM 0.7
# The NetworkManager daemon is in an unknown state.
NM_STATE_UNKNOWN = 0
# The NetworkManager daemon is connecting a device.
NM_STATE_CONNECTING_OLD = 2
NM_STATE_CONNECTING = 40
NM_STATE_CONNECTING_LIST = [NM_STATE_CONNECTING_OLD,
NM_STATE_CONNECTING]
# The NetworkManager daemon is connected.
NM_STATE_CONNECTED_OLD = 3
NM_STATE_CONNECTED_LOCAL = 50
NM_STATE_CONNECTED_SITE = 60
NM_STATE_CONNECTED_GLOBAL = 70
NM_STATE_CONNECTED_LIST = [NM_STATE_CONNECTED_OLD,
NM_STATE_CONNECTED_LOCAL,
NM_STATE_CONNECTED_SITE,
NM_STATE_CONNECTED_GLOBAL]
# The device type is unknown.
NM_DEVICE_TYPE_UNKNOWN = 0
# The device is wired Ethernet device.
NM_DEVICE_TYPE_ETHERNET = 1
# The device is an 802.11 WiFi device.
NM_DEVICE_TYPE_WIFI = 2
# The device is a GSM-based cellular WAN device.
NM_DEVICE_TYPE_GSM = 3
# The device is a CDMA/IS-95-based cellular WAN device.
NM_DEVICE_TYPE_CDMA = 4
def __init__(self):
self.bus = dbus.SystemBus()
self.proxy = self.bus.get_object("org.freedesktop.NetworkManager",
"/org/freedesktop/NetworkManager")
@staticmethod
def get_dbus_property(proxy, interface, property):
props = dbus.Interface(proxy, "org.freedesktop.DBus.Properties")
property = props.Get(interface, property)
return property
def is_active_connection_gsm_or_cdma(self):
res = False
actives = self.get_dbus_property(
self.proxy, self.NM_DBUS_IFACE, 'ActiveConnections')
for a in actives:
active = self.bus.get_object(self.NM_DBUS_IFACE, a)
default_route = self.get_dbus_property(
active, self.NM_DBUS_IFACE + ".Connection.Active", 'Default')
if not default_route:
continue
devs = self.get_dbus_property(
active, self.NM_DBUS_IFACE + ".Connection.Active", 'Devices')
for d in devs:
dev = self.bus.get_object(self.NM_DBUS_IFACE, d)
type = self.get_dbus_property(
dev, self.NM_DBUS_IFACE + ".Device", 'DeviceType')
if type == self.NM_DEVICE_TYPE_GSM:
return True
elif type == self.NM_DEVICE_TYPE_CDMA:
return True
else:
continue
return res
def is_active_connection_gsm_or_cdma_roaming(self):
res = False
if self.is_active_connection_gsm_or_cdma():
mmhelper = ModemManagerHelper()
res |= mmhelper.is_gsm_roaming()
res |= mmhelper.is_cdma_roaming()
return res
if __name__ == "__main__":
# test code
if sys.argv[1:] and sys.argv[1] == "--test":
mmhelper = ModemManagerHelper()
print("is_gsm_roaming", mmhelper.is_gsm_roaming())
print("is_cdma_romaing", mmhelper.is_cdma_roaming())
# roaming?
nmhelper = NetworkManagerHelper()
is_roaming = nmhelper.is_active_connection_gsm_or_cdma_roaming()
print("roam: ", is_roaming)
if is_roaming:
sys.exit(1)
sys.exit(0)

View File

@ -1,659 +0,0 @@
# utils.py
# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 4; coding: utf-8 -*-
#
# Copyright (c) 2004-2013 Canonical
#
# Authors: Michael Vogt <mvo@debian.org>
# Michael Terry <michael.terry@canonical.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
from __future__ import print_function
from gettext import gettext as _
from gettext import ngettext
from stat import (S_IMODE, ST_MODE, S_IXUSR)
from math import ceil
import apt
import apt_pkg
apt_pkg.init_config()
import locale
import logging
import re
import os
import subprocess
import sys
import time
import fcntl
from urllib.request import (
ProxyHandler,
Request,
build_opener,
install_opener,
urlopen,
)
from urllib.parse import urlsplit
from copy import copy
# 禁止关机锁文件路径
FILELOCK_PATH = "/tmp/lock/"
SHUTDOWN_BLOCK_FILELOCK = "kylin-update.lock"
pidfile = 0
locked = False
class ExecutionTime(object):
"""
Helper that can be used in with statements to have a simple
measure of the timing of a particular block of code, e.g.
with ExecutionTime("db flush"):
db.flush()
"""
def __init__(self, info=""):
self.info = info
def __enter__(self):
self.now = time.time()
def __exit__(self, type, value, stack):
print("%s: %s" % (self.info, time.time() - self.now))
def get_string_with_no_auth_from_source_entry(entry):
tmp = copy(entry)
url_parts = urlsplit(tmp.uri)
if url_parts.username:
tmp.uri = tmp.uri.replace(url_parts.username, "hidden-u")
if url_parts.password:
tmp.uri = tmp.uri.replace(url_parts.password, "hidden-p")
return str(tmp)
def is_unity_running():
""" return True if Unity is currently running """
unity_running = False
try:
import dbus
bus = dbus.SessionBus()
unity_running = bus.name_has_owner("com.canonical.Unity")
except Exception:
logging.exception("could not check for Unity dbus service")
return unity_running
def is_child_of_process_name(processname, pid=None):
if not pid:
pid = os.getpid()
while pid > 0:
stat_file = "/proc/%s/stat" % pid
with open(stat_file) as stat_f:
stat = stat_f.read()
# extract command (inside ())
command = stat.partition("(")[2].rpartition(")")[0]
if command == processname:
return True
# get parent (second to the right of command) and check that next
pid = int(stat.rpartition(")")[2].split()[1])
return False
def inside_chroot():
""" returns True if we are inside a chroot
"""
# if there is no proc or no pid 1 we are very likely inside a chroot
if not os.path.exists("/proc") or not os.path.exists("/proc/1"):
return True
# if the inode is differnt for pid 1 "/" and our "/"
return os.stat("/") != os.stat("/proc/1/root")
def wrap(t, width=70, subsequent_indent=""):
""" helpers inspired after textwrap - unfortunately
we can not use textwrap directly because it break
packagenames with "-" in them into new lines
"""
out = ""
for s in t.split():
if (len(out) - out.rfind("\n")) + len(s) > width:
out += "\n" + subsequent_indent
out += s + " "
return out
def twrap(s, **kwargs):
msg = ""
paras = s.split("\n")
for par in paras:
s = wrap(par, **kwargs)
msg += s + "\n"
return msg
def lsmod():
" return list of loaded modules (or [] if lsmod is not found) "
modules = []
# FIXME raise?
if not os.path.exists("/sbin/lsmod"):
return []
p = subprocess.Popen(["/sbin/lsmod"], stdout=subprocess.PIPE,
universal_newlines=True)
lines = p.communicate()[0].split("\n")
# remove heading line: "Modules Size Used by"
del lines[0]
# add lines to list, skip empty lines
for line in lines:
if line:
modules.append(line.split()[0])
return modules
def check_and_fix_xbit(path):
" check if a given binary has the executable bit and if not, add it"
if not os.path.exists(path):
return
mode = S_IMODE(os.stat(path)[ST_MODE])
if not ((mode & S_IXUSR) == S_IXUSR):
os.chmod(path, mode | S_IXUSR)
def country_mirror():
" helper to get the country mirror from the current locale "
# special cases go here
lang_mirror = {'c': ''}
# no lang, no mirror
if 'LANG' not in os.environ:
return ''
lang = os.environ['LANG'].lower()
# check if it is a special case
if lang[:5] in lang_mirror:
return lang_mirror[lang[:5]]
# now check for the most comon form (en_US.UTF-8)
if "_" in lang:
country = lang.split(".")[0].split("_")[1]
if "@" in country:
country = country.split("@")[0]
return country + "."
else:
return lang[:2] + "."
return ''
def get_dist():
" return the codename of the current runing distro "
# support debug overwrite
dist = os.environ.get("META_RELEASE_FAKE_CODENAME")
if dist:
logging.warning("using fake release name '%s' (because of "
"META_RELEASE_FAKE_CODENAME environment) " % dist)
return dist
# then check the real one
from subprocess import Popen, PIPE
p = Popen(["lsb_release", "-c", "-s"], stdout=PIPE,
universal_newlines=True)
res = p.wait()
if res != 0:
sys.stderr.write("lsb_release returned exitcode: %i\n" % res)
return "unknown distribution"
dist = p.stdout.readline().strip()
p.stdout.close()
return dist
def get_dist_version():
" return the version of the current running distro "
# support debug overwrite
desc = os.environ.get("META_RELEASE_FAKE_VERSION")
if desc:
logging.warning("using fake release version '%s' (because of "
"META_RELEASE_FAKE_VERSION environment) " % desc)
return desc
# then check the real one
from subprocess import Popen, PIPE
p = Popen(["lsb_release", "-r", "-s"], stdout=PIPE,
universal_newlines=True)
res = p.wait()
if res != 0:
sys.stderr.write("lsb_release returned exitcode: %i\n" % res)
return "unknown distribution"
desc = p.stdout.readline().strip()
p.stdout.close()
return desc
class HeadRequest(Request):
def get_method(self):
return "HEAD"
def url_downloadable(uri, debug_func=None):
"""
helper that checks if the given uri exists and is downloadable
(supports optional debug_func function handler to support
e.g. logging)
Supports http (via HEAD) and ftp (via size request)
"""
if not debug_func:
lambda x: True
debug_func("url_downloadable: %s" % uri)
(scheme, netloc, path, querry, fragment) = urlsplit(uri)
debug_func("s='%s' n='%s' p='%s' q='%s' f='%s'" % (scheme, netloc, path,
querry, fragment))
if scheme in ("http", "https"):
try:
http_file = urlopen(HeadRequest(uri))
http_file.close()
if http_file.code == 200:
return True
return False
except Exception as e:
debug_func("error from httplib: '%s'" % e)
return False
elif scheme == "ftp":
import ftplib
try:
f = ftplib.FTP(netloc)
f.login()
f.cwd(os.path.dirname(path))
size = f.size(os.path.basename(path))
f.quit()
if debug_func:
debug_func("ftplib.size() returned: %s" % size)
if size != 0:
return True
except Exception as e:
if debug_func:
debug_func("error from ftplib: '%s'" % e)
return False
return False
def is_chinese(string):
"""
检查整个字符串是否包含中文
:param string: 需要检查的字符串
:return: bool
"""
for ch in string:
if u'\u4e00' <= ch <= u'\u9fff':
return True
return False
def init_proxy(gsettings=None):
""" init proxy settings
* use apt.conf http proxy if present,
* otherwise look into synaptics config file,
* otherwise the default behavior will use http_proxy environment
if present
"""
SYNAPTIC_CONF_FILE = "/root/.synaptic/synaptic.conf"
proxies = {}
# generic apt config wins
if apt_pkg.config.find("Acquire::http::Proxy") != '':
proxies["http"] = apt_pkg.config.find("Acquire::http::Proxy")
# then synaptic
elif os.path.exists(SYNAPTIC_CONF_FILE):
cnf = apt_pkg.Configuration()
apt_pkg.read_config_file(cnf, SYNAPTIC_CONF_FILE)
use_proxy = cnf.find_b("Synaptic::useProxy", False)
if use_proxy:
proxy_host = cnf.find("Synaptic::httpProxy")
proxy_port = str(cnf.find_i("Synaptic::httpProxyPort"))
if proxy_host and proxy_port:
proxies["http"] = "http://%s:%s/" % (proxy_host, proxy_port)
if apt_pkg.config.find("Acquire::https::Proxy") != '':
proxies["https"] = apt_pkg.config.find("Acquire::https::Proxy")
elif "http" in proxies:
proxies["https"] = proxies["http"]
# if we have a proxy, set it
if proxies:
# basic verification
for proxy in proxies.values():
if not re.match("https?://\\w+", proxy):
print("proxy '%s' looks invalid" % proxy, file=sys.stderr)
return
proxy_support = ProxyHandler(proxies)
opener = build_opener(proxy_support)
install_opener(opener)
if "http" in proxies:
os.putenv("http_proxy", proxies["http"])
if "https" in proxies:
os.putenv("https_proxy", proxies["https"])
return proxies
def on_battery():
"""
Check via dbus if the system is running on battery.
This function is using UPower per default, if UPower is not
available it falls-back to DeviceKit.Power.
"""
try:
import dbus
bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM)
try:
devobj = bus.get_object('org.freedesktop.UPower',
'/org/freedesktop/UPower')
dev = dbus.Interface(devobj, 'org.freedesktop.DBus.Properties')
return dev.Get('org.freedesktop.UPower', 'OnBattery')
except dbus.exceptions.DBusException as e:
error_unknown = 'org.freedesktop.DBus.Error.ServiceUnknown'
if e._dbus_error_name != error_unknown:
raise
devobj = bus.get_object('org.freedesktop.DeviceKit.Power',
'/org/freedesktop/DeviceKit/Power')
dev = dbus.Interface(devobj, "org.freedesktop.DBus.Properties")
return dev.Get("org.freedesktop.DeviceKit.Power", "on_battery")
except Exception:
#import sys
#print("on_battery returned error: ", e, file=sys.stderr)
return False
def inhibit_sleep():
"""
Send a dbus signal to logind to not suspend the system, it will be
released when the return value drops out of scope
"""
try:
from gi.repository import Gio, GLib
connection = Gio.bus_get_sync(Gio.BusType.SYSTEM)
var, fdlist = connection.call_with_unix_fd_list_sync(
'org.freedesktop.login1', '/org/freedesktop/login1',
'org.freedesktop.login1.Manager', 'Inhibit',
GLib.Variant('(ssss)',
('shutdown:sleep',
'UpdateManager', 'Updating System',
'block')),
None, 0, -1, None, None)
inhibitor = Gio.UnixInputStream(fd=fdlist.steal_fds()[var[0]])
return inhibitor
except Exception:
#print("could not send the dbus Inhibit signal: %s" % e)
return False
def str_to_bool(str):
if str == "0" or str.upper() == "FALSE":
return False
return True
def get_lang():
import logging
try:
(locale_s, encoding) = locale.getdefaultlocale()
return locale_s
except Exception:
logging.exception("gedefaultlocale() failed")
return None
def get_ubuntu_flavor(cache=None):
""" try to guess the flavor based on the running desktop """
# this will (of course) not work in a server environment,
# but the main use case for this is to show the right
# release notes.
pkg = get_ubuntu_flavor_package(cache=cache)
return pkg.split('-', 1)[0]
def _load_meta_pkg_list():
# This could potentially introduce a circular dependency, but the config
# parser logic is simple, and doesn't rely on any UpdateManager code.
from DistUpgrade.DistUpgradeConfigParser import DistUpgradeConfig
parser = DistUpgradeConfig('/usr/share/ubuntu-release-upgrader')
return parser.getlist('Distro', 'MetaPkgs')
def get_ubuntu_flavor_package(cache=None):
""" try to guess the flavor metapackage based on the running desktop """
# From spec, first if ubuntu-desktop is installed, use that.
# Second, grab first installed one from DistUpgrade.cfg.
# Lastly, fallback to ubuntu-desktop again.
meta_pkgs = ['ubuntu-desktop']
try:
meta_pkgs.extend(sorted(_load_meta_pkg_list()))
except Exception as e:
print('Could not load list of meta packages:', e)
if cache is None:
cache = apt.Cache()
for meta_pkg in meta_pkgs:
cache_pkg = cache[meta_pkg] if meta_pkg in cache else None
if cache_pkg and cache_pkg.is_installed:
return meta_pkg
return 'ubuntu-desktop'
def get_ubuntu_flavor_name(cache=None):
""" try to guess the flavor name based on the running desktop """
pkg = get_ubuntu_flavor_package(cache=cache)
lookup = {'ubuntustudio-desktop': 'Ubuntu Studio'}
if pkg in lookup:
return lookup[pkg]
elif pkg.endswith('-desktop'):
return capitalize_first_word(pkg.rsplit('-desktop', 1)[0])
elif pkg.endswith('-netbook'):
return capitalize_first_word(pkg.rsplit('-netbook', 1)[0])
else:
return 'Ubuntu'
# Unused by update-manager, but still used by ubuntu-release-upgrader
def error(parent, summary, message):
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, Gdk
d = Gtk.MessageDialog(parent=parent,
flags=Gtk.DialogFlags.MODAL,
type=Gtk.MessageType.ERROR,
buttons=Gtk.ButtonsType.CLOSE)
d.set_markup("<big><b>%s</b></big>\n\n%s" % (summary, message))
d.realize()
d.get_window().set_functions(Gdk.WMFunction.MOVE)
d.set_title("")
d.run()
d.destroy()
return False
def check_free_space(cache):
from .DistUpgradeCache import NotEnoughFreeSpaceError
err_sum = _("Not enough free disk space")
err_msg = _("The upgrade needs a total of %s free space on "
"disk '%s'. "
"Please free at least an additional %s of disk "
"space on '%s'. %s")
# specific ways to resolve lack of free space
remedy_archivedir = _("Remove temporary packages of former "
"installations using 'sudo apt clean'.")
remedy_boot = _("You can remove old kernels using "
"'sudo apt autoremove', and you could also "
"set COMPRESS=xz in "
"/etc/initramfs-tools/initramfs.conf to "
"reduce the size of your initramfs.")
remedy_root = _("Empty your trash and remove temporary "
"packages of former installations using "
"'sudo apt clean'.")
remedy_tmp = _("Reboot to clean up files in /tmp.")
remedy_usr = _("")
# check free space and error if its not enough
try:
cache.checkFreeSpace()
except NotEnoughFreeSpaceError as e:
# CheckFreeSpace examines where packages are cached
archivedir = apt_pkg.config.find_dir("Dir::Cache::archives")
err_long = ""
for req in e.free_space_required_list:
if err_long != "":
err_long += " "
if req.dir == archivedir:
err_long += err_msg % (req.size_total, req.dir,
req.size_needed, req.dir,
remedy_archivedir)
elif req.dir == "/boot":
err_long += err_msg % (req.size_total, req.dir,
req.size_needed, req.dir,
remedy_boot)
elif req.dir == "/":
err_long += err_msg % (req.size_total, req.dir,
req.size_needed, req.dir,
remedy_root)
elif req.dir == "/tmp":
err_long += err_msg % (req.size_total, req.dir,
req.size_needed, req.dir,
remedy_tmp)
elif req.dir == "/usr":
err_long += err_msg % (req.size_total, req.dir,
req.size_needed, req.dir,
remedy_usr)
#在此抛出异常
return False,err_long
except SystemError:
logging.exception("free space check failed")
return True,None
def humanize_size(bytes):
"""
Convert a given size in bytes to a nicer better readable unit
"""
if bytes < 1000 * 1000:
# to have 0 for 0 bytes, 1 for 0-1000 bytes and for 1 and above
# round up
size_in_kb = int(ceil(bytes / float(1000)))
# TRANSLATORS: download size of small updates, e.g. "250 kB"
return ngettext("%(size).0f kB", "%(size).0f kB", size_in_kb) % {
"size": size_in_kb}
else:
# TRANSLATORS: download size of updates, e.g. "2.3 MB"
return locale.format_string(_("%.1f MB"), bytes / 1000.0 / 1000.0)
def get_arch():
return apt_pkg.config.find("APT::Architecture")
def is_port_already_listening(port):
""" check if the current system is listening on the given tcp port """
# index in the line
INDEX_LOCAL_ADDR = 1
#INDEX_REMOTE_ADDR = 2
INDEX_STATE = 3
# state (st) that we care about
STATE_LISTENING = '0A'
# read the data
with open("/proc/net/tcp") as net_tcp:
for line in net_tcp.readlines():
line = line.strip()
if not line:
continue
# split, values are:
# sl local_address rem_address st tx_queue rx_queue tr
# tm->when retrnsmt uid timeout inode
values = line.split()
state = values[INDEX_STATE]
if state != STATE_LISTENING:
continue
local_port_str = values[INDEX_LOCAL_ADDR].split(":")[1]
local_port = int(local_port_str, 16)
if local_port == port:
return True
return False
def iptables_active():
""" Return True if iptables is active """
# FIXME: is there a better way?
iptables_empty = """Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
"""
if os.getuid() != 0:
raise OSError("Need root to check the iptables state")
if not os.path.exists("/sbin/iptables"):
return False
out = subprocess.Popen(["iptables", "-nL"],
stdout=subprocess.PIPE,
universal_newlines=True).communicate()[0]
if out == iptables_empty:
return False
return True
def capitalize_first_word(string):
""" this uppercases the first word's first letter
"""
if len(string) > 1 and string[0].isalpha() and not string[0].isupper():
return string[0].capitalize() + string[1:]
return string
def get_package_label(pkg):
""" this takes a package synopsis and uppercases the first word's
first letter
"""
name = getattr(pkg.candidate, "summary", "")
return capitalize_first_word(name)
def LockedPreventShutdown():
global pidfile
global locked
if not os.path.exists(FILELOCK_PATH):
os.makedirs(FILELOCK_PATH)
pidfile = open(os.path.join(FILELOCK_PATH, SHUTDOWN_BLOCK_FILELOCK), "w+")
try:
if not locked:
fcntl.flock(pidfile, fcntl.LOCK_EX | fcntl.LOCK_NB)
logging.info("Has been locked.")
locked = True
except:
locked = False
logging.error("file cannot be locked.")
return False
def unLockedEnableShutdown():
global pidfile
global locked
if not pidfile:
return False
try:
fcntl.flock(pidfile, fcntl.LOCK_UN)
pidfile.close()
locked = False
logging.info("Has been unlocked.")
except:
logging.error("unlock failed.")
return False
if __name__ == "__main__":
#print(mirror_from_sources_list())
#print(on_battery())
#print(inside_chroot())
#print(iptables_active())
error(None, "bar", "baz")

View File

@ -1,253 +0,0 @@
# UpdateManager.py
# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 4; coding: utf-8 -*-
import os
import sys
import dbus
import logging
import dbus.service
from dbus.mainloop.glib import DBusGMainLoop
DBusGMainLoop(set_as_default=True)
from .Core.MyCache import MyCache
from .UpdateManagerDbus import UpdateManagerDbusController,UPDATER_DBUS_INTERFACE,UPDATER_DBUS_PATH,UPDATER_DBUS_SERVICE
from .Core.UpdateList import UpdateList,INPUT_CONFIG_PATH
from .backend import (InstallBackend,
get_backend)
from .Core.Database import Sqlite3Server
from .Core.loop import mainloop
import time
from gettext import gettext as _
from SystemUpdater.backend import DownloadBackend as downb
from SystemUpdater.Core.Database import MODE_UPGRADE_SINGLE
import apt_pkg
GROUPS_PKG_NAME = 'kylin-update-desktop-config'
INSTALL_ALONE_PROGRESS = "alone"
class UpdateManager():
def __init__(self,options):
self.options = options
self.cache = None
self.update_list = None
#表示是否处于更新和安装的状态
self.is_updating = False
self.is_upgrading = False
#建立dbus
self.dbusController = self._setup_dbus()
#连接数据库
self.sqlite3_server = Sqlite3Server(self)
def run(self):
"""Start the daemon and listen for calls."""
logging.debug("Waiting for calls")
try:
mainloop.run()
except KeyboardInterrupt:
self.dbusController.Quit(None)
#download only
def download_backend(self, pkgs):
try:
download_backend = downb.DownloadBackend(self)
download_backend.downloadpkgs(pkgs)
except Exception as e:
logging.error(str(e))
#download only 2.0
def start_download(self, pkgs):
try:
if self.options.no_update_source is False:
self.dbusController._on_update_important_list()
update_backend = get_backend(self, InstallBackend.ACTION_DOWNLOADONLY)
update_backend.start(partial_upgrade_list = pkgs)
except Exception as e:
logging.error(str(e))
#进行更新的操作
def start_update(self):
try:
#FIXME: 进行两次更新在更新cache之前获取source.list 更新完成之后再进行一次 为了区别服务器错误和网络错误
if self.options.no_update_source is False:
self.dbusController._on_update_important_list()
update_backend = get_backend(self, InstallBackend.ACTION_UPDATE)
update_backend.start()
except Exception as e:
logging.error(e)
#进行升级的操作
def start_install(self,upgrade_mode,is_install = False,partial_upgrade_list = []):
try:
if is_install == True:
install_backend = get_backend(self, InstallBackend.ACTION_INSTALL)
install_backend.start(upgrade_mode,partial_upgrade_list)
else:
install_backend = get_backend(self, InstallBackend.ACTION_CHECK_RESOLVER)
install_backend.start(upgrade_mode,partial_upgrade_list)
except Exception as e:
logging.error(e)
#更新结束之后会调到此获取要升级的列表 and 更新cache 生成升级组列表JSON
def start_available(self):
_success,header,desc = self.refresh_cache()
#特殊情况的处理 单独安装包需要直接退出 安装or卸载执行完毕后 还会调到start_available
if _success == False and header == INSTALL_ALONE_PROGRESS:
return
else:
upgrade_list = []
if self.update_list != None:
upgrade_list = self.update_list.local_upgrade_data.upgrade_groups + self.update_list.local_upgrade_data.single_pkgs
#发送更新升级列表完成的标志
self.dbusController.UpdateDetectFinished(_success,upgrade_list,header,desc)
#检查安装完成之后需要重启吗
self.is_reboot_required()
#清空cache
if self.cache != None and self.cache.get_changes():
self.cache.clear()
def check_group_config(self,cache):
_success = True
header = None
desc = None
#2、 安装JSON分组配置文件包 安装完毕会重新调start_available --> here 安装失败就直接退出不会进行下面的操作
try:
pkg_json = cache[GROUPS_PKG_NAME]
#是否安装
if pkg_json.is_installed:
#是否可升级
if pkg_json.is_upgradable:
logging.info("groups JSON ConfigPkgs(%s) start upgrading...",self.GROUPS_PKG_NAME)
pkg_json.mark_upgrade()
self.start_install(MODE_UPGRADE_SINGLE,True)
#直接退出
_success = False
header = INSTALL_ALONE_PROGRESS
return _success,header,desc
else:
logging.info("ConfigPkgs(%s) No need to upgrade...",GROUPS_PKG_NAME)
else:
logging.info("groups JSON ConfigPkgs(%s) start new installing...",GROUPS_PKG_NAME)
pkg_json.mark_install()
self.start_install(MODE_UPGRADE_SINGLE,True)
#直接退出
_success = False
header = INSTALL_ALONE_PROGRESS
return _success,header,desc
#FIXME: 错误处理未做 报告到控制面板
except Exception as e:
header = _("Preparing the upgrade failed")
desc = _("groups JSON ConfigPkgs install failed")
logging.warning("groups JSON ConfigPkgs(%s) install failed...",GROUPS_PKG_NAME)
logging.error(e)
_success = False
return _success,header,desc
#FIXME:
#3、 判断目录是JSON配置文件夹是否缺失 缺失后进行修复 卸载重新安装步骤
# if not os.path.exists(INPUT_CONFIG_PATH):
# logging.info("groups JSON Config Path(%s) Missing and Trying to fix...",INPUT_CONFIG_PATH)
# #将软件包卸载 之后进行重新安装here --> purge --> start_available 进行判断是否安装未安装重新安装
# # self.start_install_alone(pkgs_purge = [GROUPS_PKG_NAME])
# #直接退出
# _success = False
# header = INSTALL_ALONE_PROGRESS
# return _success,header,desc
return _success,header,desc
def refresh_cache(self):
_success = True
header = ''
desc = ''
try:
#第一次进入 之后update不进入
if self.cache is None:
self.cache = MyCache(None)
else:
self.cache.open(None)
self.cache._initDepCache()
except AssertionError:
header = _("Software index is broken")
desc = _("It is impossible to install or remove any software. "
"Please use the package manager \"Synaptic\" or run "
"\"sudo apt-get install -f\" in a terminal to fix "
"this issue at first.")
_success = False
return _success,header,desc
except SystemError as e:
header = _("Could not initialize the package information")
desc = _("An unresolvable problem occurred while "
"initializing the package information.\n\n"
"Please report this bug against the 'kylin-system-updater' "
"package and include the following error "
"message:\n") + str(e)
_success = False
return _success,header,desc
#更新important.list
if self.options.no_update_source is False:
_success,header,desc = self.dbusController._on_update_important_list()
if _success == False:
return _success,header,desc
#检查更新分组配置表
_success,header,desc = self.check_group_config(self.cache)
if _success == False:
return _success,header,desc
self.update_list = UpdateList(self)
try:
_success,header,desc = self.update_list.update(self.cache)
except SystemError as e:
pass
return _success,header,desc
def is_reboot_required(self):
"""If a reboot is required to get all changes into effect."""
return os.path.exists(os.path.join(apt_pkg.config.find_dir("Dir"),
"var/run/reboot-required"))
def _setup_dbus(self):
# check if there is another g-a-i already and if not setup one
# listening on dbus
try:
bus = dbus.SystemBus()
except Exception:
logging.error("warning: could not initiate dbus")
return
try:
proxy_obj = bus.get_object(UPDATER_DBUS_SERVICE,
UPDATER_DBUS_PATH)
#替换后台
if self.options.replace is False:
logging.critical("Another daemon is already running")
sys.exit(1)
else:
logging.warning("Replacing already running daemon")
proxy_obj.Quit(dbus_interface=UPDATER_DBUS_INTERFACE,
timeout=300)
time.sleep(1)
bus_name = dbus.service.BusName(UPDATER_DBUS_SERVICE,
bus,
do_not_queue=True)
return UpdateManagerDbusController(self, bus_name)
except dbus.DBusException:
bus_name = dbus.service.BusName(UPDATER_DBUS_SERVICE,
bus)
logging.info(_("initiate dbus success ..."))
return UpdateManagerDbusController(self, bus_name)

View File

@ -1,284 +0,0 @@
#!/usr/bin/python3
import dbus
import dbus.service
import logging
import threading
from gettext import gettext as _
from .Core.AlertWatcher import AlertWatcher
from .Core.roam import NetworkManagerHelper
from .Core.loop import mainloop
from .Core.utils import humanize_size
from SystemUpdater.Core.utils import (
unLockedEnableShutdown,
)
from SystemUpdater.Core.Database import MODE_UPGRADE_PARTIAL,MODE_UPGRADE_ALL,MODE_UPGRADE_SYSTEM,MODE_UPGRADE_SINGLE
UPDATER_DBUS_INTERFACE = 'com.kylin.systemupgrade.interface'
UPDATER_DBUS_PATH = '/com/kylin/systemupgrade'
UPDATER_DBUS_SERVICE = 'com.kylin.systemupgrade'
#颜色设置
COLORLOG_SUFFIX = "\033[0m"
# NO_PRE = "\033[0m"
# RED_PRE = "\033[31;1m"
# GREEN_PRE = "\033[32;1m"
# YELLOW_PRE = "\033[33;1m"
# BULE_PRE = "\033[34;1m"
# BACK_BLACK_PER = "\033[40;1m"
# BACK_RED_PER = "\033[41;1m"
# BACK_GREEN_PER = "\033[42;1m"
BACK_YELLOW_PER = "\033[43;1m"
# BACK_BLUE_PER = "\033[44;1m"
# BACK_WHITE_YELLOW_PRE = "\033[1;31;43m"
COLORLOG_PREFIX = BACK_YELLOW_PER
#dbus 建立
class UpdateManagerDbusController(dbus.service.Object):
""" this is a helper to provide the UpdateManagerIFace """
UPDATER_DBUS_INTERFACE = 'com.kylin.systemupgrade.interface'
def __init__(self, parent, bus_name,
object_path=UPDATER_DBUS_PATH):
dbus.service.Object.__init__(self, bus_name, object_path)
self.parent = parent
#网络检测 电池检测等等的启动检查
# self.alert_watcher = AlertWatcher()
# self.alert_watcher.check_alert_state()
# self.alert_watcher.connect("network-alert", self._on_network_alert)
# self.connected = False
self.transaction = None
#更新important.list的本次升级的列表
def _on_update_important_list(self):
header = None
desc = None
lock = threading.Lock()
bus = dbus.SystemBus()
try:
obj = bus.get_object('com.kylin.software.properties', '/com/kylin/software/properties')
interface = dbus.Interface(obj, dbus_interface='com.kylin.software.properties.interface')
lock.acquire()
retval = interface.updateSourceTemplate()
lock.release()
except Exception as e:
header = _("update important list occur Exception")
desc = str(e)
logging.error("update sourceTemplate Failed and Error mes:%s"%str(e))
return False,header,desc
if retval == False:
header = _("Failed to get update software push, please try to update again later")
desc = _("Connection exception with push server")
logging.warning(header + desc)
return retval,header,desc
else:
logging.info("update sourceTemplate successed...")
return retval,header,desc
#检测网络的状态
def _on_network_alert(self, watcher, state):
if state in NetworkManagerHelper.NM_STATE_CONNECTED_LIST:
self.connected = True
logging.info('Network Connected ...')
else:
self.connected = False
logging.info('Network Disconnected ...')
@dbus.service.method(UPDATER_DBUS_INTERFACE,
in_signature="", out_signature="",
sender_keyword="caller_name")
def Quit(self, caller_name):
"""Request a shutdown of the daemon."""
self.CancelDownload()
try:
logging.info("file unlocked")
unLockedEnableShutdown()
except:
logging.error("File lock release failure")
logging.info("Quitting was requested")
logging.debug("Quitting main loop...")
mainloop.quit()
logging.debug("Exit")
#更新的dbus
@dbus.service.method(UPDATER_DBUS_INTERFACE,out_signature='b')
def UpdateDetect(self):
try:
#处于更新和升级中的话 不进行更新
if self.parent.is_updating or self.parent.is_upgrading:
logging.info('In the process of updating or Upgrading...')
return False,'In the process of updating or Upgrading...'
else:
self.parent.start_update()
logging.info('method UpdateDetect ...')
return True
except Exception:
return False
#全部升级
@dbus.service.method(UPDATER_DBUS_INTERFACE,in_signature='b',out_signature='bs')
def DistUpgradeAll(self,_is_install):
try:
is_install = bool(_is_install)
if not self.parent.update_list:
logging.info('Perform \"UpdateDetect\" first')
return False,'Perform \"UpdateDetect\" first'
#处于更新和升级中的话 不进行升级
if self.parent.is_updating or self.parent.is_upgrading:
logging.info('In the process of updating or Upgrading...')
return False,'In the process of updating or Upgrading...'
else:
logging.info('method DistUpgradeSystem and is_install:%r...',is_install)
self.parent.start_install(MODE_UPGRADE_ALL,is_install)
return True,'success'
except Exception as e:
return False,str(e)
#部分升级
@dbus.service.method(UPDATER_DBUS_INTERFACE,in_signature='bas',out_signature='bs')
def DistUpgradePartial(self,_is_install,_partial_upgrade_list):
try:
is_install = bool(_is_install)
if not self.parent.update_list:
logging.info('Perform \"UpdateDetect\" first')
return False,'Perform \"UpdateDetect\" first'
#处于更新和升级中的话 不进行升级
if self.parent.is_updating or self.parent.is_upgrading:
logging.info('In the process of updating or Upgrading...')
return False,'In the process of updating or Upgrading...'
else:
partial_upgrade_list = [str(i) for i in _partial_upgrade_list]
local_upgrade_groups = self.parent.update_list.local_upgrade_data.upgrade_groups
local_single_pkgs = self.parent.update_list.local_upgrade_data.single_pkgs
upgrade_intersection_pkgs = list(set(partial_upgrade_list) & set(local_upgrade_groups + local_single_pkgs))
if upgrade_intersection_pkgs:
logging.info('dbus partial_upgrade(%s),is_install:%r',partial_upgrade_list,is_install)
self.parent.start_install(MODE_UPGRADE_PARTIAL,is_install,partial_upgrade_list)
return True,'dbus upgrading'
else:
logging.warning('input upgrade list(%s) not in local upgrade_list(%s)',partial_upgrade_list,local_upgrade_groups+local_single_pkgs)
return False,'upgrade_list is empty'
except Exception as e:
return False,e
# 取消transaction
@dbus.service.method(UPDATER_DBUS_INTERFACE, out_signature='bs')
def CancelDownload(self):
status = False
message = ""
try:
if self.transaction.cancellable == True:
self.transaction.cancel()
status = True
message = "Success"
logging.info("dbus-mothod cancel task Success")
elif self.transaction == None or self.transaction.cancellable == False:
message = "Can not Cancel"
except Exception as e:
return (status,str(e))
return (status, message)
# 依赖错误时调用的接口
@dbus.service.method(UPDATER_DBUS_INTERFACE,in_signature='b',out_signature='bs')
def DistUpgradeSystem(self,_is_install):
try:
is_install = bool(_is_install)
#处于更新和升级中的话 不进行升级
if self.parent.is_updating or self.parent.is_upgrading:
logging.info('In the process of updating or Upgrading...')
return False,'In the process of updating or Upgrading...'
else:
logging.info('method DistUpgradeSystem and is_install:%r...',is_install)
self.parent.start_install(MODE_UPGRADE_SYSTEM,is_install)
return True,'success'
except Exception as e:
logging.error(False, str(e))
return (False, str(e))
# 操作数据库的接口
@dbus.service.method(UPDATER_DBUS_INTERFACE, out_signature='b')
def DataBaseOpt(self, action='check',table='', cid=19):
if action == 'check':
try:
self.parent.sqlite3_server.find_msg_from_datebase(action, table, cid)
except Exception as e:
logging.error(str(e))
return False
return True
# # download certain package and its dependencies
@dbus.service.method(UPDATER_DBUS_INTERFACE, in_signature='asi', out_signature='b')
def DownloadPackages(self, pkgs=[], try_times=1):
logging.info("Download Packages ...")
if try_times > 0:
pass
else:
try_times = 1
times = try_times
while times > 0:
self.parent.start_download(pkgs)
times -= 1
return True
#更新进度信息 0~100 进度信息 101为非预期的信号
@dbus.service.signal(UPDATER_DBUS_INTERFACE,signature='is')
def UpdateDetectStatusChanged(self,progress,status):
logging.info(COLORLOG_PREFIX+"emit"+COLORLOG_SUFFIX+" UpdateDetectStatusChanged progress = %d , status = %s",progress,status)
#更新完成的信号
@dbus.service.signal(UPDATER_DBUS_INTERFACE,signature='basss')
def UpdateDetectFinished(self, success, upgrade_group,error_string='',error_desc='',):
logging.info(COLORLOG_PREFIX + "emit"+ COLORLOG_SUFFIX + " UpdateDetectFinished success = %r , upgrade_group = %a, error_string = %s , error_desc = %s ",\
success,upgrade_group,error_string,error_desc)
#升级的进度信息 0~100 进度信息 101为非预期的信号
@dbus.service.signal(UPDATER_DBUS_INTERFACE,signature='asiss')
def UpdateDloadAndInstStaChanged(self,groups_list,progress,status,current_details):
logging.info(COLORLOG_PREFIX + "emit" + COLORLOG_SUFFIX +" UpdateDloadAndInstStaChanged upgrade groups_list = %s progress = %d , status = %s ,\
current_details = %s\033[0m",groups_list,progress,status,current_details)
#升级完成的信号
@dbus.service.signal(UPDATER_DBUS_INTERFACE,signature='basss')
def UpdateInstallFinished(self, success, upgrade_group,error_string='',error_desc='',):
logging.info(COLORLOG_PREFIX + "emit" + COLORLOG_SUFFIX +" UpdateInstallFinished success = %r , upgrade_group = %a, error_string = %s , error_desc = %s ",\
success,upgrade_group, error_string,error_desc)
#发送下载包信息
@dbus.service.signal(UPDATER_DBUS_INTERFACE, signature='iiiii')
def UpdateDownloadInfo(self, current_items, total_items, currenty_bytes, total_bytes, current_cps):
logging.info(COLORLOG_PREFIX + "emit" + COLORLOG_SUFFIX +" UpdateDownloadInfo current_items = %d, total_items = %d, currenty_bytes = %s, total_bytes = %s, current_cps = %s/s",\
current_items, total_items, \
humanize_size(currenty_bytes), humanize_size(total_bytes),\
humanize_size(current_cps))
#查询解决依赖 信号
@dbus.service.signal(UPDATER_DBUS_INTERFACE,signature='bbasasasss')
def UpdateDependResloveStatus(self, resolver_status, remove_status,remove_pkgs,pkg_raw_description,delete_desc,error_string='',error_desc='',):
logging.info(COLORLOG_PREFIX + "emit" + COLORLOG_SUFFIX +" UpdateDependResloveStatus:resolver_status = %r , resolver_status = %r , remove_pkgs = %a,pkg_raw_description = %a ,delete_desc = %s,error_string = %s , error_desc = %s ",\
resolver_status,remove_status,remove_pkgs,pkg_raw_description,delete_desc,error_string,error_desc)
#查询dist-upgrade解决依赖
@dbus.service.signal(UPDATER_DBUS_INTERFACE,signature='bbasasss')
def DistupgradeDependResloveStatus(self, resolver_status, remove_status,remove_pkgs,pkg_raw_description,error_string='',error_desc='',):
logging.info(COLORLOG_PREFIX + "emit" + COLORLOG_SUFFIX +" DistupgradeDependResloveStatus:resolver_status = %r , resolver_status = %r , remove_pkgs = %a,pkg_raw_description = %a ,error_string = %s , error_desc = %s ",\
resolver_status,remove_status,remove_pkgs,pkg_raw_description,error_string,error_desc)
# 信号是否可取消
@dbus.service.signal(UPDATER_DBUS_INTERFACE, signature='b')
def Cancelable(self, Cancelable):
logging.info(COLORLOG_PREFIX + "emit" + COLORLOG_SUFFIX +" Cancelable: %r",\
Cancelable)
# 插入数据库完成后发送
@dbus.service.signal(UPDATER_DBUS_INTERFACE, signature='ss')
def UpdateSqlitSingle(self, appname, date):
logging.info(COLORLOG_PREFIX + "emit" + COLORLOG_SUFFIX +" UpdateSqlitSingle: [ %s ]: date: %s .",\
appname, date)

View File

@ -1 +0,0 @@
VERSION = '1.1.9kord'

View File

@ -1,140 +0,0 @@
#!/usr/bin/python3
import os
import apt
import logging
import apt_pkg
from defer import inline_callbacks
from apt.progress.base import AcquireProgress
from gettext import gettext as _
#python-apt download only
class FetchProgress(AcquireProgress):
def __init__(self, downdeamon) -> None:
super().__init__()
self.downd = downdeamon
self.dbusDeamon = downdeamon.window_main.dbusController
self.kargs = {"desc":"", "err_text":"","status":"", "type":""}
self.time = 0
def pulse(self, owner):
progress = int((self.current_bytes / self.total_bytes) * 100)
total_size = self.total_bytes
pkgname = ''
tmplist = []
current_cps =0
if owner.workers[0].current_item != None:
pkgname=str(owner.workers[0].current_item.shortdesc)
for i in owner.items:
allpkgs=os.path.basename(i.destfile)
allpkgs = allpkgs.split("_")[0]
tmplist.append(allpkgs)
current_items = tmplist.index(pkgname)
else:
current_items = 0
current_cps = self.calculatcps()
if current_cps == None:
current_cps = 0
self.dbusDeamon.UpdateDownloadInfo(\
current_items, len(owner.items), \
self.current_bytes, owner.total_needed, \
current_cps)
return
def stop(self):
logging.info("fetch progess finished")
finish_status = False
if self.current_items == self.total_items:
finish_status = True
else:
finish_status = False
error_string = "Download " + self.kargs['desc'] + self.kargs['type']
error_desc = self.kargs['err_text']
self.dbusDeamon.UpdateInstallFinished(finish_status, self.downd.pkglists, error_string, error_desc)
return
def fail(self, acquireitemdesc):
desc = acquireitemdesc.shortdesc
err_text = acquireitemdesc.owner.error_text
status = acquireitemdesc.owner.status
type = ""
if status == apt_pkg.AcquireItem.STAT_AUTH_ERROR:
type = "authentication error"
elif status == apt_pkg.AcquireItem.STAT_ERROR:
type = "fetch error"
elif status == apt_pkg.AcquireItem.STAT_TRANSIENT_NETWORK_ERROR:
type = "network error"
elif status == apt_pkg.AcquireItem.STAT_IDLE:
type = "to be fetched"
elif status == apt_pkg.AcquireItem.STAT_FETCHING:
type = "fetching"
elif status == apt_pkg.AcquireItem.STAT_DONE:
type = "finished"
else:
type = "normal"
self.kargs = {"desc":desc, \
"err_text":err_text, \
"status":status, \
"type":type}
# self.deamon.DownloadErrorSignal(desc, type, err_text)
return
def start(self):
# type: () -> None
"""Invoked when the Acquire process starts running."""
# Reset all our values.
self.current_bytes = 0.0
self.current_cps = 0.0
self.current_items = 0
self.elapsed_time = 0
self.fetched_bytes = 0.0
self.last_bytes = 0.0
self.total_bytes = 0.0
self.total_items = 0
logging.info("start download ...")
def calculatcps(self):
import datetime
if self.time == 0:
self.time = datetime.datetime.now()
self.currentbyte = self.current_bytes
return 0
else:
time = datetime.datetime.now()
if self.current_bytes == self.currentbyte:
cps = 0
else:
cps = (self.current_bytes-self.currentbyte) / (time-self.time).microseconds * 1000000
# print((time-self.time).microseconds)
# print(self.current_bytes-self.currentbyte)
self.currentbyte = self.current_bytes
self.time = time
return cps
class DownloadBackend():
def __init__(self, window_main):
self.window_main = window_main
self.pkglists = []
def downloadpkgs(self, pkgs = []):
logging.info("Pkgs: %s", pkgs)
self.pkglists = pkgs
apt_pkg.init()
cache = apt_pkg.Cache()
depcache = apt_pkg.DepCache(cache)
packagerecords = apt_pkg.PackageRecords(cache)
pm = apt_pkg.PackageManager(depcache)
sourcelist = apt_pkg.SourceList()
sourcelist.read_main_list()
try:
for pkgname in pkgs:
pkg = cache[pkgname]
depcache.mark_install(pkg)
except Exception as e:
logging.error(str(e))
return False
fetcher = apt_pkg.Acquire(FetchProgress(self))
pm.get_archives(fetcher, sourcelist, packagerecords)
ret = fetcher.run()

View File

@ -1,252 +0,0 @@
#!/usr/bin/env python
from aptdaemon import client, errors
from defer import inline_callbacks
from aptdaemon.enums import (EXIT_SUCCESS,
EXIT_FAILED,
EXIT_CANCELLED,
get_error_description_from_enum,
get_error_string_from_enum,
get_status_string_from_enum
)
from SystemUpdater.backend import InstallBackend
import logging
from gettext import gettext as _
import dbus,time
from gi.repository import GLib
# 超时检测 秒单位
UPDATER_IDLE_CHECK_INTERVAL = 30
UPDATER_IDLE_TIMEOUT = 10 * 60
import dbus
from SystemUpdater.Core.utils import (LockedPreventShutdown)
class InstallBackendAptdaemon(InstallBackend):
"""Makes use of aptdaemon to refresh the cache and to install updates."""
def __init__(self, window_main, action):
InstallBackend.__init__(self, window_main, action)
self.window_main = window_main
#客户端连接aptdeamon的dbus接口
self.client = client.AptClient()
self.trans_failed_msg = None
self.trans_progress = 0
self.static_progress = 0
self.trans_status = ''
self.details = ''
self.last_action_timestamp = time.time()
if self.action == self.ACTION_INSTALL:
#超时检查轮询
logging.info("timeout_add_seconds init...")
GLib.timeout_add_seconds(UPDATER_IDLE_CHECK_INTERVAL,
self._check_for_inactivity)
def _check_for_inactivity(self):
"""Shutdown the daemon if it has been inactive for time specified
in UPDATER_IDLE_TIMEOUT.
"""
logging.info("Checking for inactivity...")
if self.window_main.is_upgrading == False:
logging.info("Installing to exit and timeout check quit...")
return False
#进度不同时 更新时间戳
if self.trans_progress != self.static_progress:
self.static_progress = self.trans_progress
self.last_action_timestamp = time.time()
#只有安装的时候启用 下载时候不使用
timestamp = self.last_action_timestamp
if (time.time() - timestamp > UPDATER_IDLE_TIMEOUT
and self.static_progress > 50):
logging.error("Quitting due to inactivity(%s)",self.details)
self._action_done(self.ACTION_INSTALL,
authorized=True, success=False,
#FIXME: 安装超时退出
error_string=_("Could not install the upgrades"),
error_desc=_("Installtion timeout to exit Due to inactivity") + self.details)
self.window_main.dbusController.Quit(None)
return False
return True
@inline_callbacks
def update(self):
"""刷新包cache"""
try:
trans = yield self.client.update_cache(defer=True)
self.window_main.dbusController.transaction = trans
# 注册回调函数 接收更新的状态
yield self._show_transaction(trans, self.ACTION_UPDATE,
_("Checking for updates…"), False)
except errors.NotAuthorizedError:
self._action_done(self.ACTION_UPDATE,
authorized=False, success=False,
error_string=None, error_desc=None)
except Exception:
self._action_done(self.ACTION_UPDATE,
authorized=True, success=False,
error_string=None, error_desc=None)
raise
@inline_callbacks
def commit(self, pkgs_install, pkgs_upgrade, pkgs_remove,pkgs_purge = []):
"""Commit a list of package adds and removes"""
try:
reinstall = downgrade = []
trans = yield self.client.commit_packages(
pkgs_install, reinstall, pkgs_remove, purge = pkgs_purge, upgrade = pkgs_upgrade,
downgrade = downgrade, defer=True)
self.window_main.dbusController.transaction = trans
yield self._show_transaction(trans, self.ACTION_INSTALL,
_("Installing updates…"), True)
except errors.NotAuthorizedError:
self._action_done(self.ACTION_INSTALL,
authorized=False, success=False,
error_string=None, error_desc=None)
except errors.TransactionFailed as e:
self.trans_failed_msg = str(e)
except dbus.DBusException as e:
if e.get_dbus_name() != "org.freedesktop.DBus.Error.NoReply":
raise
self._action_done(self.ACTION_INSTALL,
authorized=False, success=False,
error_string=None, error_desc=None)
except Exception:
self._action_done(self.ACTION_INSTALL,
authorized=True, success=False,
error_string=None, error_desc=None)
raise
@inline_callbacks
def install_deb(self,install_path,install_force):
"""安装deb包 """
try:
trans = yield self.client.install_file(path = install_path,force = install_force,defer=True)
self.window_main.dbusController.transaction = trans
# 注册回调函数 接收更新的状态
yield self._show_transaction(trans, self.ACTION_INSTALL_DEB,
_("Installing deb packages…"), False)
except errors.NotAuthorizedError:
self._action_done(self.ACTION_INSTALL_DEB,
authorized=False, success=False,
error_string=None, error_desc=None)
except Exception:
self._action_done(self.ACTION_INSTALL_DEB,
authorized=True, success=False,
error_string=None, error_desc=None)
raise
@inline_callbacks
def download_deb(self, pkg_lists):
"""download deb only"""
try:
trans = yield self.client.download_packages(pkg_names = pkg_lists, defer=True)
self.window_main.dbusController.transaction = trans
# 注册回调函数 接收更新的状态
yield self._show_transaction(trans, self.ACTION_DOWNLOADONLY,
_("Downloading deb packages…"), False)
except errors.NotAuthorizedError:
self._action_done(self.ACTION_DOWNLOADONLY,
authorized=False, success=False,
error_string=None, error_desc=None)
except Exception:
self._action_done(self.ACTION_DOWNLOADONLY,
authorized=True, success=False,
error_string=None, error_desc=None)
raise
#进度回调
def _on_progress_changed(self, trans,progress,action):
if progress == 101:
return
self.trans_progress = progress
if action == self.ACTION_UPDATE:
self.window_main.dbusController.UpdateDetectStatusChanged(self.trans_progress,self.trans_status)
else:
if progress >= 50 and action != self.ACTION_DOWNLOADONLY:
LockedPreventShutdown()
upgrade_content = self.now_upgrade.upgrade_groups+self.now_upgrade.single_pkgs
self.window_main.dbusController.UpdateDloadAndInstStaChanged(upgrade_content,self.trans_progress,self.trans_status,self.details)
#同步状态回调
def _on_status_changed(self, trans, status,action):
#转化词条
self.trans_status = get_status_string_from_enum(status)
if action == self.ACTION_UPDATE:
self.window_main.dbusController.UpdateDetectStatusChanged(self.trans_progress,self.trans_status)
elif action == self.ACTION_INSTALL and action == self.ACTION_INSTALL_DEB:
#升级的时候发送状态信号时需要上传更新组信息self.upgrade_groups_list
upgrade_content = self.now_upgrade.upgrade_groups+self.now_upgrade.single_pkgs
self.window_main.dbusController.UpdateDloadAndInstStaChanged(upgrade_content,self.trans_progress,self.trans_status,self.details)
elif action == self.ACTION_DOWNLOADONLY:
pass
def _on_details_changed(self, trans, details):
self.details = details
def _on_download_changed(self, trans, details):
logging.info(details)
# eta 剩余时间不正确,取消掉
def _on_progress_download_changed(self,trans,current_items, total_items, currenty_bytes, total_bytes, current_cps, eta):
if self.action == self.ACTION_INSTALL:
self.window_main.dbusController.UpdateDownloadInfo(\
current_items, total_items, \
currenty_bytes, total_bytes, \
current_cps)
def _on_cancellable_changed(self, trans, Cancelable):
self.window_main.dbusController.Cancelable(Cancelable)
@inline_callbacks
def _show_transaction(self, trans, action, header, show_details):
#更新和升级最后完成和失败都会走此在此进行完成之后的处理
trans.connect("finished", self._on_finished, action)
#升级和更新的状态信息和进度
trans.connect("status-changed", self._on_status_changed,action)
trans.connect("progress-changed", self._on_progress_changed,action)
#取消升级
trans.connect("cancellable-changed", self._on_cancellable_changed)
#下载的进度信息
trans.connect("progress-details-changed", self._on_progress_download_changed)
trans.connect("status-details-changed", self._on_details_changed)
# yield trans.set_debconf_frontend("ukui")
yield trans.run()
def _on_finished(self, trans, status, action):
error_string = ''
error_desc = ''
if status == EXIT_FAILED:
error_string = get_error_string_from_enum(trans.error.code)
error_desc = get_error_description_from_enum(trans.error.code)
if self.trans_failed_msg:
error_desc = error_desc + "\n" + self.trans_failed_msg
#取消下载
elif status == EXIT_CANCELLED:
error_string = _("Failed to fetch")
error_desc = _("_Cancel Upgrade")
elif status == EXIT_SUCCESS:
error_string = _("System upgrade is complete.")
is_success = (status == EXIT_SUCCESS)
try:
self._action_done(action,
authorized=True, success=is_success,
error_string=error_string, error_desc=error_desc)
except TypeError:
# this module used to be be lazily imported and in older code
# trans_failed= is not accepted
# TODO: this workaround can be dropped in Ubuntu 20.10
self._action_done(action,
authorized=True, success=is_success,
error_string=error_string, error_desc=error_desc)

View File

@ -1,366 +0,0 @@
#!/usr/bin/env python
# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 4; coding: utf-8 -*-
"""Integration of package managers into SystemUpdater"""
# (c) 2005-2009 Canonical, GPL
from __future__ import absolute_import
import logging
import os
from gettext import gettext as _
import apt_pkg
from SystemUpdater.Core.utils import (
unLockedEnableShutdown,
check_free_space
)
from ..Core.Database import MODE_DEFAULT_STATUS,MODE_UPGRADE_PARTIAL,MODE_UPGRADE_ALL,MODE_UPGRADE_SYSTEM,MODE_UPGRADE_SINGLE
class NowUpgradePara:
"""
Represent the (potentially partial) results of an unattended-upgrades
run
"""
def __init__(self,
upgrade_groups=[],
upgrade_mode=MODE_DEFAULT_STATUS,
single_pkgs=[],
):
#组列表中包含的包
self.upgrade_groups = upgrade_groups
#升级的模式
self.upgrade_mode = upgrade_mode
#推送的可升级的单包
self.single_pkgs = single_pkgs
class InstallBackend():
ACTION_UPDATE = 0
ACTION_INSTALL = 1
ACTION_INSTALL_DEB = 2
ACTION_CHECK_RESOLVER = 3
ACTION_DOWNLOADONLY = 4
def __init__(self, window_main, action):
self.window_main = window_main
self.cache = window_main.cache
self.action = action
if self.window_main.update_list != None:
self.local_upgrade_data = window_main.update_list.local_upgrade_data
self.now_upgrade = NowUpgradePara([],MODE_DEFAULT_STATUS,[])
def start(self,_upgrade_mode = MODE_DEFAULT_STATUS,partial_upgrade_list = []):
#安装升级包 首先必须调用ACTION_CHECK_RESOLVER 计算依赖解决方便 标记cache 进行升级
if self.action == self.ACTION_INSTALL:
self.now_upgrade.upgrade_mode = _upgrade_mode
if _upgrade_mode != MODE_UPGRADE_SINGLE:
self._make_upgrade_list(_upgrade_mode,partial_upgrade_list)
#检查磁盘的状态
_success,desc = check_free_space(self.cache)
if _success == False and desc != None:
header = _("Can not upgrade")
self._action_done(self.action,True,False,header,desc)
return
logging.info("Disk Check finished...")
pkgs_install,pkgs_upgrade,pkgs_remove = self._get_mark_from_cache(self.cache)
logging.info("INSTALL install:%d , upgrade:%d remove:%d",len(pkgs_install),len(pkgs_upgrade),len(pkgs_remove))
if len(pkgs_install) == 0 and len(pkgs_upgrade) == 0 and len(pkgs_remove) == 0:
#FIXME: 没有需要升级和安装的包 检查升级包是否不存在本次升级
header = _("There are no packages that need to be upgraded and installed")
desc = _("Check if the upgrade package does not exist for this upgrade")
self._action_done(self.action,True,False,header,desc)
return
try:
self.window_main.is_upgrading = True
self.commit(pkgs_install, pkgs_upgrade, pkgs_remove)
except Exception as e:
logging.error(e)
#计算依赖解决方案
elif self.action == self.ACTION_CHECK_RESOLVER:
_success = True
header = ''
desc = ''
if _upgrade_mode != MODE_UPGRADE_SYSTEM:
#获取要升级的列表
pkgs_install,pkgs_upgrade = self._make_upgrade_list(_upgrade_mode,partial_upgrade_list)
#计算解决依赖关系
_success,delete_pkgs,delete_desc,header,desc = self._make_problem_resolver(pkgs_install,pkgs_upgrade)
pkgs_install,pkgs_upgrade,pkgs_remove = self._get_mark_from_cache(self.cache)
pkgs_remove = delete_pkgs
else:
# 使用全盘升级 全盘使用dist-upgrade
try:
if self.cache.get_changes():
self.cache.clear()
_success = self.cache._depcache.upgrade(True)
pkgs_install,pkgs_upgrade,pkgs_remove = self._get_mark_from_cache(self.cache)
except Exception as e:
_success = False
desc = str(e)
logging.error(desc)
logging.info("RESOLVER install:%d , upgrade:%d remove:%d",len(pkgs_install),len(pkgs_upgrade),len(pkgs_remove))
is_remove_pkgs = len(pkgs_remove) != 0
#属于检测查询依赖解决是否成功 是否存在删包
raw_description = []
#添加关于删除包的描述信息
for pkg in pkgs_remove:
pkg_obj = self.cache[pkg]
app = self.window_main.update_list._get_application_for_package(pkg_obj)
if app is not None:
raw_description.append(app.get_display_name())
else:
raw_description.append(getattr(pkg_obj.candidate, "summary", ''))
if _upgrade_mode != MODE_UPGRADE_SYSTEM:
self.window_main.dbusController.UpdateDependResloveStatus(_success,is_remove_pkgs,pkgs_remove,raw_description,delete_desc,header,desc)
else:
self.window_main.dbusController.DistupgradeDependResloveStatus(_success,is_remove_pkgs,pkgs_remove,raw_description,header,desc)
elif self.action == self.ACTION_DOWNLOADONLY:
try:
self.window_main.is_upgrading = True
self.download_deb(partial_upgrade_list)
except Exception as e:
logging.error(str(e))
elif self.action == self.ACTION_UPDATE:
self.is_updating = True
self.update()
def update(self):
"""Run a update to refresh the package list"""
raise NotImplementedError
def commit(self, pkgs_install, pkgs_upgrade, pkgs_remove,pkgs_purge = []):
"""Commit the cache changes """
raise NotImplementedError
def install_deb(self,install_path,install_force):
"""install_deb the cache changes """
raise NotImplementedError
#从cache中拿到标记的列表
def _get_mark_from_cache(self,cache):
pkgs_install = []
pkgs_upgrade = []
pkgs_remove = []
adjust_pkgs = [i.split("=")[0] for i in self.local_upgrade_data.adjust_pkgs]
for pkg in cache:
try:
if pkg.marked_install:
pkgname = pkg.name
if pkg.is_auto_installed:
pkgname += "#auto"
if pkg.name in adjust_pkgs:
pkgs_install.append(self.local_upgrade_data.adjust_pkgs[adjust_pkgs.index(pkg.name)])
else:
pkgs_install.append(pkgname)
elif pkg.marked_upgrade:
if pkg.name in adjust_pkgs:
pkgs_upgrade.append(self.local_upgrade_data.adjust_pkgs[adjust_pkgs.index(pkg.name)])
else:
pkgs_upgrade.append(pkg.name)
elif pkg.marked_delete:
pkgs_remove.append(pkg.name)
except KeyError:
pass
return pkgs_install,pkgs_upgrade,pkgs_remove
#从本地中获取本次升级需要升级的包 部分升级和全部升级使用 全盘升级不适用
def _make_upgrade_list(self,_upgrade_mode,partial_upgrade_list):
pkgs_install = []
pkgs_upgrade = []
local_groups_list = []
local_pkg_list = []
try:
#可选升级
if _upgrade_mode == MODE_UPGRADE_PARTIAL:
for i in partial_upgrade_list:
#组升级方式
if i in self.local_upgrade_data.upgrade_groups:
local_groups_list.append(i)
#单包升级方式
elif i in self.local_upgrade_data.single_pkgs:
local_pkg_list.append(i)
else:
logging.warning("this package(%s) not in selected list",i)
#全部升级列表
elif _upgrade_mode == MODE_UPGRADE_ALL:
local_groups_list = self.local_upgrade_data.upgrade_groups
local_pkg_list = self.local_upgrade_data.single_pkgs
#单包的升级方式
if local_pkg_list:
self.now_upgrade.single_pkgs += local_pkg_list
for pkg in local_pkg_list:
if self.cache[pkg].is_installed:
pkgs_upgrade.append(pkg)
else:
pkgs_install.append(pkg)
#遍历升级组列表
if local_groups_list:
self.now_upgrade.upgrade_groups += local_groups_list
for group_name in local_groups_list:
pkgs_install += self.local_upgrade_data.upgrade_groups_pkgs.get(group_name,[]).get('pkgs_install',[])
pkgs_upgrade += self.local_upgrade_data.upgrade_groups_pkgs.get(group_name,[]).get('pkgs_upgrade',[])
return pkgs_install,pkgs_upgrade
except Exception as e:
logging.error(str(e))
return [],[]
#计算升级或者安装这个包 是否存在需要卸载某个包
def _make_delete_pkgs(self,cache,all_delete_pkgs):
wouldDelete = cache._depcache.del_count
deleted_pkgs = []
if wouldDelete > len(all_delete_pkgs):
for pkg_obj in cache:
if pkg_obj.marked_delete:
if pkg_obj.name in all_delete_pkgs:
continue
else:
deleted_pkgs.append(pkg_obj.name)
if deleted_pkgs:
all_delete_pkgs += deleted_pkgs
return deleted_pkgs
#将获取本次升级的包 进行计算依赖关系 解决依赖问题
def _make_problem_resolver(self,pkgs_install,pkgs_upgrade):
_success = True
header = ''
desc = ''
try:
logging.info("ProblemResolver install:%d , upgrade:%d",len(pkgs_install),len(pkgs_upgrade))
logging.info("Start calculating dependencies...")
#actiongroup 可以加速计算依赖关系 计算花费的时间将大幅度缩减
with self.cache.actiongroup():
if self.cache.get_changes():
self.cache.clear()
Fix = apt_pkg.ProblemResolver(self.cache._depcache)
all_delete_pkgs = []
all_delete_desc = []
#标记计算所有需要升级的包
for pkg in pkgs_upgrade:
self.cache[pkg].mark_upgrade()
deleted_pkgs = self._make_delete_pkgs(self.cache,all_delete_pkgs)
for d_pkg in deleted_pkgs:
delete_desc = str(d_pkg) + _(" Will be deleted Due to Upgrade ") + str(pkg)
all_delete_desc.append(delete_desc)
logging.warning(delete_desc)
#标记计算所有需要安装的
for pkg in pkgs_install:
self.cache[pkg].mark_install()
deleted_pkgs = self._make_delete_pkgs(self.cache,all_delete_pkgs)
for d_pkg in deleted_pkgs:
delete_desc = str(d_pkg) + _(" Will be deleted Due to Install ") + str(pkg)
all_delete_desc.append(delete_desc)
logging.warning(delete_desc)
#会安装新包和卸载包
Fix.resolve(True)
#不会安装和卸载 只升级
return _success,all_delete_pkgs,all_delete_desc,header,desc
except Exception as e:
_success = False
header = _("Could not calculate the upgrade")
desc = _("An unresolvable problem occurred while "
"calculating the upgrade.\n\n"
"Please report this bug against the 'kylin-system-updater' "
"package and include the following error "
"message:\n") + str(e)
logging.error(header + desc)
return _success,[],[],header,desc
#出现错误和更新升级完成都会调到此方法 进行处理
def _action_done(self, action, authorized, success, error_string,error_desc):
#升级完成后走的分支
if action == self.ACTION_INSTALL:
upgrade_content = self.now_upgrade.upgrade_groups + self.now_upgrade.single_pkgs
self.window_main.is_upgrading = False
unLockedEnableShutdown()
#完成后清空cache
if self.cache.get_changes():
self.cache.clear()
if success:
#当组列表为空时 表示现在的单独进行安装某些包或卸载,不发信号到控制面板
if self.now_upgrade.upgrade_mode != MODE_UPGRADE_SINGLE:
#升级完成后从升级列表删除
for groups in self.now_upgrade.upgrade_groups:
self.local_upgrade_data.upgrade_groups.remove(groups)
for pkg in self.now_upgrade.single_pkgs:
self.local_upgrade_data.single_pkgs.remove(pkg)
else:
self.window_main.start_available()
return
if error_string == None:
error_string = ''
if error_desc == None:
error_desc = ''
# 信息插入数据库 and 发送信号
if error_string != '' or error_desc != '':
logging.info(error_string + error_desc)
self.window_main.sqlite3_server.insert_info(self.now_upgrade.upgrade_mode,self.now_upgrade.single_pkgs,self.now_upgrade.upgrade_groups,success,error_string,error_desc)
self.window_main.dbusController.UpdateInstallFinished(success,upgrade_content,error_string,error_desc)
elif action == self.ACTION_UPDATE:
self.window_main.is_updating = False
if success:
#开始生成列表
self.window_main.start_available()
elif error_string or error_desc:
logging.warning(error_string + error_desc)
self.window_main.dbusController.UpdateDetectFinished(success,[],error_string,error_desc)
else:
self.window_main.dbusController.UpdateDetectFinished(success,[],'','')
elif action == self.ACTION_DOWNLOADONLY:
self.window_main.is_upgrading = False
if success:
#开始生成列表
self.window_main.start_available()
elif error_string or error_desc:
logging.warning(error_string + error_desc)
self.window_main.dbusController.UpdateDetectFinished(success,[],error_string,error_desc)
else:
self.window_main.dbusController.UpdateDetectFinished(success,[],'','')
elif action == self.ACTION_INSTALL_DEB:
pass
unLockedEnableShutdown()
# try aptdaemon
if os.path.exists("/usr/sbin/aptd") \
and "UPDATE_MANAGER_FORCE_BACKEND_SYNAPTIC" not in os.environ:
# check if the gtkwidgets are installed as well
try:
from .InstallBackendAptdaemon import InstallBackendAptdaemon
except ImportError:
logging.exception("importing aptdaemon")
def get_backend(*args, **kwargs):
"""Select and return a package manager backend."""
# try aptdaemon
if (os.path.exists("/usr/sbin/aptd")
and "UPDATE_MANAGER_FORCE_BACKEND_SYNAPTIC" not in os.environ):
# check if the gtkwidgets are installed as well
try:
return InstallBackendAptdaemon(*args, **kwargs)
except NameError:
logging.exception("using aptdaemon failed")
# nothing found, raise
raise Exception("No working backend found, please try installing "
"aptdaemon or synaptic")

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-28 20:02+0800\n"
"POT-Creation-Date: 2021-10-29 10:23+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -1,7 +0,0 @@
linux-generic
kylin-update-desktop-kernel
kylin-update-desktop-kernel-3a4000
kylin-update-desktop-ukui
kylin-update-desktop-support
linux-meta

View File

@ -1,25 +0,0 @@
//reference 50uu
Kylin-system-updater::Allowed-Origins {
//"Ubuntu:trusty";
"Kylin:10.1";
":default";
};
Kylin-system-updater::Package-Blacklist {
};
Kylin-system-updater::Package-Whitelist {
};
Kylin-system-updater::Package-Whitelist-Strict {
};
Kylin-system-updater::DevRelease "auto";
Kylin-system-updater::LogDir "/var/log/kylin-system-updater/";
Kylin-system-updater::InputConfigDir "/usr/share/kylin-update-desktop-config/data";
Kylin-system-updater::OutputConfigDir "/var/lib/kylin-system-updater";
Kylin-system-updater::ImportantListDir "/var/lib/kylin-software-properties/template/important.list";

View File

@ -1,9 +0,0 @@
DOMAIN=kylin-system-updater
DESKTOP_IN_FILES := $(wildcard *.desktop.in)
DESKTOP_FILES := $(patsubst %.desktop.in,%.desktop,$(wildcard *.desktop.in))
all: $(DESKTOP_FILES)
%.desktop: %.desktop.in ../po/$(DOMAIN).pot
intltool-merge -d ../po $< $@

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- Only root can own the service -->
<policy user="root">
<allow own="com.kylin.systemupgrade"/>
<allow send_interface="com.kylin.systemupgrade.interface"/>
</policy>
<!-- Allow anyone to invoke methods on the interfaces -->
<policy context="default">
<allow send_destination="com.kylin.systemupgrade"
send_interface="com.kylin.systemupgrade.interface"/>
<allow send_destination="com.kylin.systemupgrade"
send_interface="org.freedesktop.DBus.Introspectable"/>
<allow send_destination="com.kylin.systemupgrade"
send_interface="org.freedesktop.DBus.Properties"/>
</policy>
</busconfig>

View File

@ -1,58 +0,0 @@
.\" Title : kylin-system-updater
.\" Author : Kylin Development Team
.\" September 22, 2021
.\"
.\" First parameter, NAME, should be all caps
.\" other parameters are allowed: see man(7), man(1)
.TH KYLIN_SYSTEM_UPDATER 8 "September 22, 2021"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" for manpage-specific macros, see man(7)
.SH NAME
kylin-system-updater \- DBUS daemon of software packages updates
.SH SYNOPSIS
\fBkylin-system-updater\fP [options]
.br
.SH DESCRIPTION
kylin-system-updater is a daemon for the apt package management system.
.PP
kylin-system-updater is especially designed for upgrading your system.
.SH OPTIONS
For a daily use, you may launch update-manager with no options so that your system is just upgraded.
.PP
For migration purposes, update-manager accepts some options:
.TP
\fB-h\fR, \fB\-\-help\fR
Show a similar help message
.TP
\fB-V\fR, \fB\-\-version\fR
Show version
.SH ACTIONS PERFORMED DURING AN UPGRADE TO A NEW VERSION
* eventually reinstall the package ubuntu-desktop
* switch to an updated sources.list entries
* adds the default user to new groups if needed
.SH SEE ALSO
\fBSynaptic\fR, \fBsources.list\fR, \fBaptitude\fR
.SH AUTHORS
update-manager was developed by Michael Vogt <mvo@ubuntu.com>
with various contributors (see AUTHORS file)
.PP
This manual page was originally written by Bruno Mangin and
Michael Vogt <mvo@ubuntu.com>.
.SH COPYRIGHT
Copyright (C) 2006-2007 Canonical
.PP
There is NO warranty.
You may redistribute this software under the terms of the GNU
General Public License. For more information about these matters, see
the files named COPYING.

Binary file not shown.

View File

@ -1,13 +0,0 @@
[Unit]
Description=kylin-system-updater dbus daemon
StartLimitIntervalSec=0
[Service]
Type=dbus
Restart=always
RestartSec=3
BusName=com.kylin.systemupgrade
ExecStart=/usr/bin/kylin-system-updater
[Install]
WantedBy=multi-user.target

View File

@ -1,12 +0,0 @@
./debian/kylin-system-updater/usr/bin/kylin-system-updater
./debian/kylin-system-updater/usr/lib/python3.8/dist-packages/SystemUpdater/UpdateManager.py
./debian/kylin-system-updater/usr/lib/python3.8/dist-packages/SystemUpdater/UpdateManagerDbus.py
./data/com.kylin.systemupgrade.conf
./debian/kylin-system-updater/usr/share/locale
./debian/kylin-system-updater/usr/lib/python3.8/dist-packages/SystemUpdater/Core
./debian/kylin-system-updater/usr/lib/python3.8/dist-packages/SystemUpdater/UpdateManagerVersion.py
./debian/kylin-system-updater/usr/lib/python3.8/dist-packages/SystemUpdater/__init__.py
./debian/kylin-system-updater/usr/lib/python3.8/dist-packages/SystemUpdater/backend
./data/kylin-system-updater.service
./data/30kylin-system-updater
./data/kylin-system-updater.db

View File

@ -1,4 +0,0 @@
./README.MD
./interface.md
./TODO
./AUTHORS

9
debian/changelog vendored
View File

@ -1,3 +1,12 @@
kylin-system-updater (1.2.0.3kord) v101; urgency=medium
* BUG: 无
* 需求号: 无
* 其他改动说明: 完善升级功能,源过滤优化,合并系统升级控制面板插件
* 影响域: 系统升级
-- luoxueyi <luoxueyi@kylinos.cn> Thu, 28 Oct 2021 21:43:39 +0800
kylin-system-updater (1.1.9kord) v101; urgency=medium
* BUG: 无

47
debian/control vendored
View File

@ -11,7 +11,50 @@ Build-Depends: debhelper (>= 9),
python3-gi (>= 3.8),
python3-yaml,
lsb-release,
apt-clone (>= 0.2.3~ubuntu1)
apt-clone (>= 0.2.3~ubuntu1),
libqt5svg5-dev,
libgsettings-qt-dev,
libglib2.0-dev,
libmatekbd-dev,
libqt5x11extras5-dev,
libxklavier-dev,
libkf5widgetsaddons-dev,
libkf5config-dev,
libkf5configwidgets-dev,
libkf5screen-dev,
libkf5screen-bin,
libkf5i18n-dev,
libkf5windowsystem-dev,
libkf5guiaddons-dev,
libkf5coreaddons-dev,
libkf5xmlgui-dev,
libkf5globalaccel-dev,
qtdeclarative5-dev,
libopencv-dev,
libdconf-dev,
libmatemixer-dev,
qtmultimedia5-dev,
libxml2-dev,
qtbase5-dev,
libcanberra-dev,
libx11-dev,
libxkbfile-dev,
libboost-dev,
qttools5-dev-tools,
libxcb-xkb-dev,
libpolkit-qt5-1-dev,
libpulse-dev,
libkf5bluezqt-dev,
libkysec-dev,
libpwquality-dev,
libudev-dev,
xserver-xorg-dev,
libupower-glib-dev,
libpam0g-dev,
yhkylin-backup-tools-dev(>=4.0.13-kylin19)[!sw64],
libukui-log4qt-dev[!sw64],
libmate-desktop-dev,
ukui-control-center(>=3.1.1+2021-1026separate9),
Build-Depends-Indep: libxml-parser-perl,
intltool
Standards-Version: 3.8.0
@ -20,7 +63,7 @@ Vcs-Browser: https://www.kylinos.cn
X-Python3-Version: >= 3.2
Package: kylin-system-updater
Architecture: all
Architecture: any
Depends: ${python3:Depends},
${misc:Depends},
policykit-1,

View File

@ -1,21 +0,0 @@
dh_update_autotools_config
dh_auto_configure
dh_auto_build
dh_auto_test
dh_prep
dh_auto_install
dh_install
dh_installdocs
dh_installchangelogs
dh_installman
dh_installinit
dh_perl
dh_link
dh_strip_nondeterminism
dh_compress
dh_fixperms
dh_missing
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb

View File

@ -1,12 +1,14 @@
debian/kylin-system-updater/usr/bin/kylin-system-updater
debian/kylin-system-updater/usr/lib/python3*/dist-packages/SystemUpdater/UpdateManager.py
debian/kylin-system-updater/usr/lib/python3*/dist-packages/SystemUpdater/UpdateManagerDbus.py
data/com.kylin.systemupgrade.conf /etc/dbus-1/system.d/
debian/kylin-system-updater/usr/share/locale
debian/kylin-system-updater/usr/lib/python3*/dist-packages/SystemUpdater/Core
debian/kylin-system-updater/usr/lib/python3*/dist-packages/SystemUpdater/UpdateManagerVersion.py
debian/kylin-system-updater/usr/lib/python3*/dist-packages/SystemUpdater/__init__.py
debian/kylin-system-updater/usr/lib/python3*/dist-packages/SystemUpdater/backend
data/kylin-system-updater.service /usr/lib/systemd/system/
data/30kylin-system-updater /etc/apt/apt.conf.d/
data/kylin-system-updater.db /usr/share/kylin-system-updater/
backend/data/kylin-system-updater.db /usr/share/kylin-system-updater/
backend/data/30kylin-system-updater /etc/apt/apt.conf.d/
backend/data/kylin-system-updater.service /usr/lib/systemd/system/
backend/data/com.kylin.systemupgrade.conf /etc/dbus-1/system.d/
backend/build/scripts-3.8/kylin-system-updater /usr/bin/
backend/build/lib/SystemUpdater/Core/*
backend/build/mo/* /usr/share/locale
backend/build/lib/SystemUpdater/UpdateManager.py /usr/lib/python3.8/dist-packages/SystemUpdater/
backend/build/lib/SystemUpdater/UpdateManagerDbus.py /usr/lib/python3.8/dist-packages/SystemUpdater/
backend/build/lib/SystemUpdater/UpdateManager.py /usr/lib/python3.8/dist-packages/SystemUpdater/
backend/build/lib/SystemUpdater/backend /usr/lib/python3.8/dist-packages/SystemUpdater/
backend/build/lib/SystemUpdater/UpdateManagerVersion.py /usr/lib/python3.8/dist-packages/SystemUpdater/
backend/build/lib/SystemUpdater/__init__.py /usr/lib/python3.8/dist-packages/SystemUpdater/
backend/build/lib/SystemUpdater/Core /usr/lib/python3.8/dist-packages/SystemUpdater/

View File

@ -1,10 +0,0 @@
# Automatically added by dh_python3:
if which py3compile >/dev/null 2>&1; then
py3compile -p kylin-system-updater -V 3.2-
fi
if which pypy3compile >/dev/null 2>&1; then
pypy3compile -p kylin-system-updater -V 3.2- || true
fi
# End automatically added section

View File

@ -1,10 +0,0 @@
# Automatically added by dh_python3:
if which py3clean >/dev/null 2>&1; then
py3clean -p kylin-system-updater
else
dpkg -L kylin-system-updater | perl -ne 's,/([^/]*)\.py$,/__pycache__/\1.*, or next; unlink $_ or die $! foreach glob($_)'
find /usr/lib/python3/dist-packages/ -type d -name __pycache__ -empty -print0 | xargs --null --no-run-if-empty rmdir
fi
# End automatically added section

View File

@ -1,3 +0,0 @@
python3:Depends=python3:any, python3:any (>= 3.2~)
misc:Depends=
misc:Pre-Depends=

5
debian/rules vendored
View File

@ -1,6 +1,7 @@
#!/usr/bin/make -f
export PYBUILD_INTERPRETERS=python3
#export PYBUILD_INTERPRETERS=python3
%:
dh $@ --with=python3 --buildsystem=pybuild
dh $@
#--with=python3 --buildsystem=pybuild

Binary file not shown.

Before

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 B

View File

@ -1,71 +0,0 @@
#!/usr/bin/python3
from SystemUpdater.UpdateManager import UpdateManager
from gettext import gettext as _
import logging
from optparse import OptionParser
import dbus
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
import signal
import os
import sys
import gettext
from SystemUpdater.Core.LogManager import get_logfile as logfile
gettext.bindtextdomain('kylin-system-updater', '/usr/share/locale')
gettext.textdomain('kylin-system-updater')
_ = gettext.gettext
#定义日志的格式
FORMAT = '%(asctime)-15s %(levelname)s:%(message)s'
FORMAT_DEBUG = '%(asctime)-15s %(levelname)s(%(filename)s:%(lineno)d):%(message)s'
def signal_handler_term(signal, frame):
# type: (int, object) -> None
logging.warning("SIGTERM received, will stop")
app.dbusController.Quit(None)
if __name__ == "__main__":
# Begin parsing of options
parser = OptionParser()
parser.add_option ("-d", "--debug", action="store_true", default=False,
help=_("Show debug messages"))
parser.add_option("-r", "--replace",
default=False,
action="store_true", dest="replace",
help=_("Quit and replace an already running "
"daemon"))
parser.add_option ("--no-update-source", action="store_true",
dest="no_update_source", default=False,
help=_("Do not check for updates source when updating"))
(options, args) = parser.parse_args()
if os.getuid() != 0:
print(_("You need to be root to run this application"))
sys.exit(1)
# set debconf to NON_INTERACTIVE
os.environ["DEBIAN_FRONTEND"] = "noninteractive"
os.environ["TERM"] = "xterm"
os.environ["PATH"] = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# ensure that we are not killed when the terminal goes away e.g. on
# shutdown
signal.signal(signal.SIGHUP, signal.SIG_IGN)
signal.signal(signal.SIGINT,signal_handler_term)
if options.debug:
logging.basicConfig(format=FORMAT,level=logging.DEBUG)
else:
logging.basicConfig(format=FORMAT,level=logging.DEBUG,filename = logfile(),filemode = 'a')
logging.info('kylin-system-updater starting ...')
app = UpdateManager(options)
app.start_update()
app.run()

View File

@ -1,111 +0,0 @@
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Public domain
errstatus=0
dirmode=""
usage="\
Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
# process command line arguments
while test $# -gt 0 ; do
case $1 in
-h | --help | --h*) # -h for help
echo "$usage" 1>&2
exit 0
;;
-m) # -m PERM arg
shift
test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
dirmode=$1
shift
;;
--) # stop option processing
shift
break
;;
-*) # unknown option
echo "$usage" 1>&2
exit 1
;;
*) # first non-opt arg
break
;;
esac
done
for file
do
if test -d "$file"; then
shift
else
break
fi
done
case $# in
0) exit 0 ;;
esac
case $dirmode in
'')
if mkdir -p -- . 2>/dev/null; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
fi
;;
*)
if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
fi
;;
esac
for file
do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d
do
pathcomp="$pathcomp$d"
case $pathcomp in
-*) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=""
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
errstatus=$lasterr
fi
fi
fi
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# End:
# mkinstalldirs ends here

View File

@ -37,7 +37,7 @@ MOVE = mv -f
TAR = tar -cf
COMPRESS = gzip -9f
DISTNAME = upgrade1.0.0
DISTDIR = /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/.tmp/upgrade1.0.0
DISTDIR = /home/lxy/tmp/kylin-system-updater/plugin/.tmp/upgrade1.0.0
LINK = g++
LFLAGS = -Wl,-O1 -Wl,-rpath-link,/usr/lib/x86_64-linux-gnu -shared
LIBS = $(SUBLIBS) -lX11 -lukcc -lgsettings-qt /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libKF5WindowSystem.so /usr/lib/x86_64-linux-gnu/libQt5X11Extras.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Network.so /usr/lib/x86_64-linux-gnu/libQt5DBus.so /usr/lib/x86_64-linux-gnu/libQt5Sql.so /usr/lib/x86_64-linux-gnu/libQt5Core.so /usr/lib/x86_64-linux-gnu/libGL.so -lpthread
@ -582,12 +582,12 @@ compiler_moc_header_clean:
moc_deletepkglistwig.cpp: src/deletepkglistwig.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/deletepkglistwig.h -o moc_deletepkglistwig.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/deletepkglistwig.h -o moc_deletepkglistwig.cpp
moc_picturetowhite.cpp: src/picturetowhite.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/picturetowhite.h -o moc_picturetowhite.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/picturetowhite.h -o moc_picturetowhite.cpp
moc_updatedeleteprompt.cpp: src/updatedeleteprompt.h \
src/deletepkglistwig.h \
@ -597,12 +597,12 @@ moc_updatedeleteprompt.cpp: src/updatedeleteprompt.h \
src/utils.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/updatedeleteprompt.h -o moc_updatedeleteprompt.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/updatedeleteprompt.h -o moc_updatedeleteprompt.cpp
moc_xatom-helper.cpp: src/xatom-helper.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/xatom-helper.h -o moc_xatom-helper.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/xatom-helper.h -o moc_xatom-helper.cpp
moc_appupdate.cpp: src/appupdate.h \
src/utils.h \
@ -616,27 +616,27 @@ moc_appupdate.cpp: src/appupdate.h \
src/mylabel.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/appupdate.h -o moc_appupdate.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/appupdate.h -o moc_appupdate.cpp
moc_backup.cpp: src/backup.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/backup.h -o moc_backup.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/backup.h -o moc_backup.cpp
moc_checkbutton.cpp: src/checkbutton.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/checkbutton.h -o moc_checkbutton.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/checkbutton.h -o moc_checkbutton.cpp
moc_daemonipcdbus.cpp: src/daemonipcdbus.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/daemonipcdbus.h -o moc_daemonipcdbus.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/daemonipcdbus.h -o moc_daemonipcdbus.cpp
moc_historyupdatelistwig.cpp: src/historyupdatelistwig.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/historyupdatelistwig.h -o moc_historyupdatelistwig.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/historyupdatelistwig.h -o moc_historyupdatelistwig.cpp
moc_m_updatelog.cpp: src/m_updatelog.h \
src/historyupdatelistwig.h \
@ -646,12 +646,12 @@ moc_m_updatelog.cpp: src/m_updatelog.h \
src/utils.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/m_updatelog.h -o moc_m_updatelog.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/m_updatelog.h -o moc_m_updatelog.cpp
moc_mylabel.cpp: src/mylabel.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/mylabel.h -o moc_mylabel.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/mylabel.h -o moc_mylabel.cpp
moc_tabwidget.cpp: src/tabwidget.h \
src/appupdate.h \
@ -672,12 +672,12 @@ moc_tabwidget.cpp: src/tabwidget.h \
src/checkbutton.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/tabwidget.h -o moc_tabwidget.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/tabwidget.h -o moc_tabwidget.cpp
moc_traybusthread.cpp: src/traybusthread.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/traybusthread.h -o moc_traybusthread.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/traybusthread.h -o moc_traybusthread.cpp
moc_updatedbus.cpp: src/updatedbus.h \
src/traybusthread.h \
@ -685,7 +685,7 @@ moc_updatedbus.cpp: src/updatedbus.h \
src/utils.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/updatedbus.h -o moc_updatedbus.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/updatedbus.h -o moc_updatedbus.cpp
moc_updatelog.cpp: src/updatelog.h \
src/widgetstyle.h \
@ -695,7 +695,7 @@ moc_updatelog.cpp: src/updatelog.h \
src/utils.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/updatelog.h -o moc_updatelog.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/updatelog.h -o moc_updatelog.cpp
moc_updatesource.cpp: src/updatesource.h \
src/updatedbus.h \
@ -704,7 +704,7 @@ moc_updatesource.cpp: src/updatesource.h \
src/utils.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/updatesource.h -o moc_updatesource.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/updatesource.h -o moc_updatesource.cpp
moc_upgrademain.cpp: src/upgrademain.h \
src/connection.h \
@ -728,7 +728,7 @@ moc_upgrademain.cpp: src/upgrademain.h \
src/checkbutton.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/upgrademain.h -o moc_upgrademain.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/upgrademain.h -o moc_upgrademain.cpp
moc_widgetstyle.cpp: src/widgetstyle.h \
src/updatedbus.h \
@ -737,7 +737,7 @@ moc_widgetstyle.cpp: src/widgetstyle.h \
src/utils.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/widgetstyle.h -o moc_widgetstyle.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include src/widgetstyle.h -o moc_widgetstyle.cpp
moc_upgrade.cpp: upgrade.h \
src/upgrademain.h \
@ -762,7 +762,7 @@ moc_upgrade.cpp: upgrade.h \
src/checkbutton.h \
moc_predefs.h \
/usr/lib/qt5/bin/moc
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/DEFINES -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/+= -I/home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include upgrade.h -o moc_upgrade.cpp
/usr/lib/qt5/bin/moc $(DEFINES) --include /home/lxy/tmp/kylin-system-updater/plugin/moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/lxy/tmp/kylin-system-updater/plugin -I/home/lxy/tmp/kylin-system-updater/plugin/DEFINES -I/home/lxy/tmp/kylin-system-updater/plugin/+= -I/home/lxy/tmp/kylin-system-updater/plugin/QT_DEPRECATED_WARNINGS -I/usr/include/x86_64-linux-gnu/qt5/QGSettings -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/KF5/KWindowSystem -I/usr/include/x86_64-linux-gnu/qt5/QtX11Extras -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtDBus -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/c++/9 -I/usr/include/x86_64-linux-gnu/c++/9 -I/usr/include/c++/9/backward -I/usr/lib/gcc/x86_64-linux-gnu/9/include -I/usr/local/include -I/usr/include/x86_64-linux-gnu -I/usr/include upgrade.h -o moc_upgrade.cpp
compiler_moc_objc_header_make_all:
compiler_moc_objc_header_clean:
@ -1004,7 +1004,7 @@ uninstall_target: FORCE
install_desktop: first FORCE
@test -d $(INSTALL_ROOT)/usr/share/applications/ || mkdir -p $(INSTALL_ROOT)/usr/share/applications/
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/src/kylin-system-update.desktop $(INSTALL_ROOT)/usr/share/applications/kylin-system-update.desktop
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/src/kylin-system-update.desktop $(INSTALL_ROOT)/usr/share/applications/kylin-system-update.desktop
uninstall_desktop: FORCE
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/applications/kylin-system-update.desktop
@ -1013,8 +1013,8 @@ uninstall_desktop: FORCE
install_config: first FORCE
@test -d $(INSTALL_ROOT)/usr/share/ukui-control-center/upgrade/ || mkdir -p $(INSTALL_ROOT)/usr/share/ukui-control-center/upgrade/
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/config_file/need-logout.conf $(INSTALL_ROOT)/usr/share/ukui-control-center/upgrade/need-logout.conf
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/config_file/need-reboot.conf $(INSTALL_ROOT)/usr/share/ukui-control-center/upgrade/need-reboot.conf
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/config_file/need-logout.conf $(INSTALL_ROOT)/usr/share/ukui-control-center/upgrade/need-logout.conf
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/config_file/need-reboot.conf $(INSTALL_ROOT)/usr/share/ukui-control-center/upgrade/need-reboot.conf
uninstall_config: FORCE
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/ukui-control-center/upgrade/need-reboot.conf
@ -1023,26 +1023,26 @@ uninstall_config: FORCE
install_qm_files: first FORCE
@test -d $(INSTALL_ROOT)/usr/share/upgrade/translations || mkdir -p $(INSTALL_ROOT)/usr/share/upgrade/translations
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/translations/bo.qm $(INSTALL_ROOT)/usr/share/upgrade/translations/bo.qm
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/translations/bo.ts $(INSTALL_ROOT)/usr/share/upgrade/translations/bo.ts
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/translations/en_US.qm $(INSTALL_ROOT)/usr/share/upgrade/translations/en_US.qm
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/translations/en_US.ts $(INSTALL_ROOT)/usr/share/upgrade/translations/en_US.ts
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/translations/tr.qm $(INSTALL_ROOT)/usr/share/upgrade/translations/tr.qm
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/translations/tr.ts $(INSTALL_ROOT)/usr/share/upgrade/translations/tr.ts
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/translations/zh_CN.qm $(INSTALL_ROOT)/usr/share/upgrade/translations/zh_CN.qm
-$(QINSTALL) /home/kylin/zdw/git_repo/kylin-system-updater/kylin-system-updater/plugin/translations/zh_CN.ts $(INSTALL_ROOT)/usr/share/upgrade/translations/zh_CN.ts
@test -d $(INSTALL_ROOT)/usr/share/Upgrade/translations || mkdir -p $(INSTALL_ROOT)/usr/share/Upgrade/translations
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/translations/bo.qm $(INSTALL_ROOT)/usr/share/Upgrade/translations/bo.qm
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/translations/bo.ts $(INSTALL_ROOT)/usr/share/Upgrade/translations/bo.ts
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/translations/en_US.qm $(INSTALL_ROOT)/usr/share/Upgrade/translations/en_US.qm
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/translations/en_US.ts $(INSTALL_ROOT)/usr/share/Upgrade/translations/en_US.ts
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/translations/tr.qm $(INSTALL_ROOT)/usr/share/Upgrade/translations/tr.qm
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/translations/tr.ts $(INSTALL_ROOT)/usr/share/Upgrade/translations/tr.ts
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/translations/zh_CN.qm $(INSTALL_ROOT)/usr/share/Upgrade/translations/zh_CN.qm
-$(QINSTALL) /home/lxy/tmp/kylin-system-updater/plugin/translations/zh_CN.ts $(INSTALL_ROOT)/usr/share/Upgrade/translations/zh_CN.ts
uninstall_qm_files: FORCE
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/upgrade/translations/zh_CN.ts
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/upgrade/translations/zh_CN.qm
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/upgrade/translations/tr.ts
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/upgrade/translations/tr.qm
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/upgrade/translations/en_US.ts
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/upgrade/translations/en_US.qm
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/upgrade/translations/bo.ts
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/upgrade/translations/bo.qm
-$(DEL_DIR) $(INSTALL_ROOT)/usr/share/upgrade/translations/
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/Upgrade/translations/zh_CN.ts
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/Upgrade/translations/zh_CN.qm
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/Upgrade/translations/tr.ts
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/Upgrade/translations/tr.qm
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/Upgrade/translations/en_US.ts
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/Upgrade/translations/en_US.qm
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/Upgrade/translations/bo.ts
-$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/Upgrade/translations/bo.qm
-$(DEL_DIR) $(INSTALL_ROOT)/usr/share/Upgrade/translations/
install: install_target install_desktop install_config install_qm_files FORCE

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,384 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'appupdate.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/appupdate.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'appupdate.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_AppUpdateWid_t {
QByteArrayData data[46];
char stringdata0[599];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_AppUpdateWid_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_AppUpdateWid_t qt_meta_stringdata_AppUpdateWid = {
{
QT_MOC_LITERAL(0, 0, 12), // "AppUpdateWid"
QT_MOC_LITERAL(1, 13, 9), // "startWork"
QT_MOC_LITERAL(2, 23, 0), // ""
QT_MOC_LITERAL(3, 24, 7), // "appName"
QT_MOC_LITERAL(4, 32, 9), // "startMove"
QT_MOC_LITERAL(5, 42, 4), // "list"
QT_MOC_LITERAL(6, 47, 24), // "oneappUpdateResultSignal"
QT_MOC_LITERAL(7, 72, 5), // "state"
QT_MOC_LITERAL(8, 78, 7), // "pkgname"
QT_MOC_LITERAL(9, 86, 5), // "error"
QT_MOC_LITERAL(10, 92, 6), // "reason"
QT_MOC_LITERAL(11, 99, 21), // "changeUpdateAllSignal"
QT_MOC_LITERAL(12, 121, 8), // "isUpdate"
QT_MOC_LITERAL(13, 130, 20), // "downloadFailedSignal"
QT_MOC_LITERAL(14, 151, 8), // "exitCode"
QT_MOC_LITERAL(15, 160, 16), // "filelockedSignal"
QT_MOC_LITERAL(16, 177, 17), // "appupdateiscancel"
QT_MOC_LITERAL(17, 195, 12), // "sendProgress"
QT_MOC_LITERAL(18, 208, 7), // "pkgName"
QT_MOC_LITERAL(19, 216, 8), // "Progress"
QT_MOC_LITERAL(20, 225, 4), // "type"
QT_MOC_LITERAL(21, 230, 15), // "changeupdateall"
QT_MOC_LITERAL(22, 246, 24), // "allappupdatefinishsignal"
QT_MOC_LITERAL(23, 271, 11), // "showDetails"
QT_MOC_LITERAL(24, 283, 13), // "showUpdateLog"
QT_MOC_LITERAL(25, 297, 14), // "cancelOrUpdate"
QT_MOC_LITERAL(26, 312, 18), // "showInstallStatues"
QT_MOC_LITERAL(27, 331, 10), // "appAptName"
QT_MOC_LITERAL(28, 342, 8), // "progress"
QT_MOC_LITERAL(29, 351, 6), // "status"
QT_MOC_LITERAL(30, 358, 10), // "detailinfo"
QT_MOC_LITERAL(31, 369, 19), // "showDownloadStatues"
QT_MOC_LITERAL(32, 389, 13), // "currentserial"
QT_MOC_LITERAL(33, 403, 5), // "total"
QT_MOC_LITERAL(34, 409, 14), // "downloadedsize"
QT_MOC_LITERAL(35, 424, 9), // "totalsize"
QT_MOC_LITERAL(36, 434, 5), // "speed"
QT_MOC_LITERAL(37, 440, 17), // "showInstallFinsih"
QT_MOC_LITERAL(38, 458, 25), // "OneAppDependResloveResult"
QT_MOC_LITERAL(39, 484, 20), // "slotDownloadPackages"
QT_MOC_LITERAL(40, 505, 22), // "calculateSpeedProgress"
QT_MOC_LITERAL(41, 528, 12), // "startInstall"
QT_MOC_LITERAL(42, 541, 12), // "updateAllApp"
QT_MOC_LITERAL(43, 554, 13), // "showUpdateBtn"
QT_MOC_LITERAL(44, 568, 23), // "hideOrShowUpdateBtnSlot"
QT_MOC_LITERAL(45, 592, 6) // "result"
},
"AppUpdateWid\0startWork\0\0appName\0"
"startMove\0list\0oneappUpdateResultSignal\0"
"state\0pkgname\0error\0reason\0"
"changeUpdateAllSignal\0isUpdate\0"
"downloadFailedSignal\0exitCode\0"
"filelockedSignal\0appupdateiscancel\0"
"sendProgress\0pkgName\0Progress\0type\0"
"changeupdateall\0allappupdatefinishsignal\0"
"showDetails\0showUpdateLog\0cancelOrUpdate\0"
"showInstallStatues\0appAptName\0progress\0"
"status\0detailinfo\0showDownloadStatues\0"
"currentserial\0total\0downloadedsize\0"
"totalsize\0speed\0showInstallFinsih\0"
"OneAppDependResloveResult\0"
"slotDownloadPackages\0calculateSpeedProgress\0"
"startInstall\0updateAllApp\0showUpdateBtn\0"
"hideOrShowUpdateBtnSlot\0result"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_AppUpdateWid[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
23, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
10, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 129, 2, 0x06 /* Public */,
4, 2, 132, 2, 0x06 /* Public */,
6, 4, 137, 2, 0x06 /* Public */,
11, 1, 146, 2, 0x06 /* Public */,
13, 1, 149, 2, 0x06 /* Public */,
15, 0, 152, 2, 0x06 /* Public */,
16, 0, 153, 2, 0x06 /* Public */,
17, 3, 154, 2, 0x06 /* Public */,
21, 0, 161, 2, 0x06 /* Public */,
22, 0, 162, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
23, 0, 163, 2, 0x0a /* Public */,
24, 0, 164, 2, 0x0a /* Public */,
25, 0, 165, 2, 0x0a /* Public */,
26, 4, 166, 2, 0x0a /* Public */,
31, 5, 175, 2, 0x0a /* Public */,
37, 4, 186, 2, 0x0a /* Public */,
38, 7, 195, 2, 0x0a /* Public */,
39, 0, 210, 2, 0x0a /* Public */,
40, 0, 211, 2, 0x0a /* Public */,
41, 1, 212, 2, 0x0a /* Public */,
42, 0, 215, 2, 0x0a /* Public */,
43, 0, 216, 2, 0x0a /* Public */,
44, 1, 217, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void, QMetaType::QStringList, QMetaType::QString, 5, 3,
QMetaType::Void, QMetaType::Bool, QMetaType::QStringList, QMetaType::QString, QMetaType::QString, 7, 8, 9, 10,
QMetaType::Void, QMetaType::Bool, 12,
QMetaType::Void, QMetaType::Int, 14,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, QMetaType::Int, QMetaType::QString, 18, 19, 20,
QMetaType::Void,
QMetaType::Void,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QStringList, QMetaType::Int, QMetaType::QString, QMetaType::QString, 27, 28, 29, 30,
QMetaType::Void, QMetaType::Int, QMetaType::Int, QMetaType::Int, QMetaType::Int, QMetaType::Int, 32, 33, 34, 35, 36,
QMetaType::Void, QMetaType::Bool, QMetaType::QStringList, QMetaType::QString, QMetaType::QString, 7, 8, 9, 10,
QMetaType::Void, QMetaType::Bool, QMetaType::Bool, QMetaType::QStringList, QMetaType::QStringList, QMetaType::QStringList, QMetaType::QString, QMetaType::QString, 2, 2, 2, 2, 2, 2, 2,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Int, 45,
0 // eod
};
void AppUpdateWid::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<AppUpdateWid *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->startWork((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->startMove((*reinterpret_cast< QStringList(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 2: _t->oneappUpdateResultSignal((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< QStringList(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3])),(*reinterpret_cast< QString(*)>(_a[4]))); break;
case 3: _t->changeUpdateAllSignal((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 4: _t->downloadFailedSignal((*reinterpret_cast< int(*)>(_a[1]))); break;
case 5: _t->filelockedSignal(); break;
case 6: _t->appupdateiscancel(); break;
case 7: _t->sendProgress((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3]))); break;
case 8: _t->changeupdateall(); break;
case 9: _t->allappupdatefinishsignal(); break;
case 10: _t->showDetails(); break;
case 11: _t->showUpdateLog(); break;
case 12: _t->cancelOrUpdate(); break;
case 13: _t->showInstallStatues((*reinterpret_cast< QStringList(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3])),(*reinterpret_cast< QString(*)>(_a[4]))); break;
case 14: _t->showDownloadStatues((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3])),(*reinterpret_cast< int(*)>(_a[4])),(*reinterpret_cast< int(*)>(_a[5]))); break;
case 15: _t->showInstallFinsih((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< QStringList(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3])),(*reinterpret_cast< QString(*)>(_a[4]))); break;
case 16: _t->OneAppDependResloveResult((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2])),(*reinterpret_cast< QStringList(*)>(_a[3])),(*reinterpret_cast< QStringList(*)>(_a[4])),(*reinterpret_cast< QStringList(*)>(_a[5])),(*reinterpret_cast< QString(*)>(_a[6])),(*reinterpret_cast< QString(*)>(_a[7]))); break;
case 17: _t->slotDownloadPackages(); break;
case 18: _t->calculateSpeedProgress(); break;
case 19: _t->startInstall((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 20: _t->updateAllApp(); break;
case 21: _t->showUpdateBtn(); break;
case 22: _t->hideOrShowUpdateBtnSlot((*reinterpret_cast< int(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (AppUpdateWid::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AppUpdateWid::startWork)) {
*result = 0;
return;
}
}
{
using _t = void (AppUpdateWid::*)(QStringList , QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AppUpdateWid::startMove)) {
*result = 1;
return;
}
}
{
using _t = void (AppUpdateWid::*)(bool , QStringList , QString , QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AppUpdateWid::oneappUpdateResultSignal)) {
*result = 2;
return;
}
}
{
using _t = void (AppUpdateWid::*)(bool );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AppUpdateWid::changeUpdateAllSignal)) {
*result = 3;
return;
}
}
{
using _t = void (AppUpdateWid::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AppUpdateWid::downloadFailedSignal)) {
*result = 4;
return;
}
}
{
using _t = void (AppUpdateWid::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AppUpdateWid::filelockedSignal)) {
*result = 5;
return;
}
}
{
using _t = void (AppUpdateWid::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AppUpdateWid::appupdateiscancel)) {
*result = 6;
return;
}
}
{
using _t = void (AppUpdateWid::*)(QString , int , QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AppUpdateWid::sendProgress)) {
*result = 7;
return;
}
}
{
using _t = void (AppUpdateWid::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AppUpdateWid::changeupdateall)) {
*result = 8;
return;
}
}
{
using _t = void (AppUpdateWid::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AppUpdateWid::allappupdatefinishsignal)) {
*result = 9;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject AppUpdateWid::staticMetaObject = { {
&QWidget::staticMetaObject,
qt_meta_stringdata_AppUpdateWid.data,
qt_meta_data_AppUpdateWid,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *AppUpdateWid::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *AppUpdateWid::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_AppUpdateWid.stringdata0))
return static_cast<void*>(this);
return QWidget::qt_metacast(_clname);
}
int AppUpdateWid::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 23)
qt_static_metacall(this, _c, _id, _a);
_id -= 23;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 23)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 23;
}
return _id;
}
// SIGNAL 0
void AppUpdateWid::startWork(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void AppUpdateWid::startMove(QStringList _t1, QString _t2)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
// SIGNAL 2
void AppUpdateWid::oneappUpdateResultSignal(bool _t1, QStringList _t2, QString _t3, QString _t4)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)), const_cast<void*>(reinterpret_cast<const void*>(&_t4)) };
QMetaObject::activate(this, &staticMetaObject, 2, _a);
}
// SIGNAL 3
void AppUpdateWid::changeUpdateAllSignal(bool _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
// SIGNAL 4
void AppUpdateWid::downloadFailedSignal(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 4, _a);
}
// SIGNAL 5
void AppUpdateWid::filelockedSignal()
{
QMetaObject::activate(this, &staticMetaObject, 5, nullptr);
}
// SIGNAL 6
void AppUpdateWid::appupdateiscancel()
{
QMetaObject::activate(this, &staticMetaObject, 6, nullptr);
}
// SIGNAL 7
void AppUpdateWid::sendProgress(QString _t1, int _t2, QString _t3)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)) };
QMetaObject::activate(this, &staticMetaObject, 7, _a);
}
// SIGNAL 8
void AppUpdateWid::changeupdateall()
{
QMetaObject::activate(this, &staticMetaObject, 8, nullptr);
}
// SIGNAL 9
void AppUpdateWid::allappupdatefinishsignal()
{
QMetaObject::activate(this, &staticMetaObject, 9, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,219 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'backup.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/backup.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'backup.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_BackUp_t {
QByteArrayData data[12];
char stringdata0[146];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_BackUp_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_BackUp_t qt_meta_stringdata_BackUp = {
{
QT_MOC_LITERAL(0, 0, 6), // "BackUp"
QT_MOC_LITERAL(1, 7, 18), // "backupStartRestult"
QT_MOC_LITERAL(2, 26, 0), // ""
QT_MOC_LITERAL(3, 27, 11), // "calCapacity"
QT_MOC_LITERAL(4, 39, 12), // "bakeupFinish"
QT_MOC_LITERAL(5, 52, 14), // "backupProgress"
QT_MOC_LITERAL(6, 67, 10), // "needBacdUp"
QT_MOC_LITERAL(7, 78, 11), // "startBackUp"
QT_MOC_LITERAL(8, 90, 14), // "creatInterface"
QT_MOC_LITERAL(9, 105, 8), // "sendRate"
QT_MOC_LITERAL(10, 114, 24), // "receiveStartBackupResult"
QT_MOC_LITERAL(11, 139, 6) // "result"
},
"BackUp\0backupStartRestult\0\0calCapacity\0"
"bakeupFinish\0backupProgress\0needBacdUp\0"
"startBackUp\0creatInterface\0sendRate\0"
"receiveStartBackupResult\0result"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_BackUp[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
9, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
4, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 59, 2, 0x06 /* Public */,
3, 0, 62, 2, 0x06 /* Public */,
4, 1, 63, 2, 0x06 /* Public */,
5, 1, 66, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
6, 0, 69, 2, 0x0a /* Public */,
7, 1, 70, 2, 0x0a /* Public */,
8, 0, 73, 2, 0x0a /* Public */,
9, 2, 74, 2, 0x08 /* Private */,
10, 1, 79, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::Int, 2,
QMetaType::Bool,
QMetaType::Void, QMetaType::Int, 2,
QMetaType::Void, QMetaType::Int, 2,
// slots: parameters
QMetaType::Int,
QMetaType::Void, QMetaType::Int, 2,
QMetaType::Void,
QMetaType::Void, QMetaType::Int, QMetaType::Int, 2, 2,
QMetaType::Void, QMetaType::Int, 11,
0 // eod
};
void BackUp::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<BackUp *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->backupStartRestult((*reinterpret_cast< int(*)>(_a[1]))); break;
case 1: { bool _r = _t->calCapacity();
if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = std::move(_r); } break;
case 2: _t->bakeupFinish((*reinterpret_cast< int(*)>(_a[1]))); break;
case 3: _t->backupProgress((*reinterpret_cast< int(*)>(_a[1]))); break;
case 4: { int _r = _t->needBacdUp();
if (_a[0]) *reinterpret_cast< int*>(_a[0]) = std::move(_r); } break;
case 5: _t->startBackUp((*reinterpret_cast< int(*)>(_a[1]))); break;
case 6: _t->creatInterface(); break;
case 7: _t->sendRate((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
case 8: _t->receiveStartBackupResult((*reinterpret_cast< int(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (BackUp::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&BackUp::backupStartRestult)) {
*result = 0;
return;
}
}
{
using _t = bool (BackUp::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&BackUp::calCapacity)) {
*result = 1;
return;
}
}
{
using _t = void (BackUp::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&BackUp::bakeupFinish)) {
*result = 2;
return;
}
}
{
using _t = void (BackUp::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&BackUp::backupProgress)) {
*result = 3;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject BackUp::staticMetaObject = { {
&QObject::staticMetaObject,
qt_meta_stringdata_BackUp.data,
qt_meta_data_BackUp,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *BackUp::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *BackUp::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_BackUp.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int BackUp::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 9)
qt_static_metacall(this, _c, _id, _a);
_id -= 9;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 9)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 9;
}
return _id;
}
// SIGNAL 0
void BackUp::backupStartRestult(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
bool BackUp::calCapacity()
{
bool _t0{};
void *_a[] = { const_cast<void*>(reinterpret_cast<const void*>(&_t0)) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
return _t0;
}
// SIGNAL 2
void BackUp::bakeupFinish(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 2, _a);
}
// SIGNAL 3
void BackUp::backupProgress(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,94 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'checkbutton.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/checkbutton.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'checkbutton.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_m_button_t {
QByteArrayData data[1];
char stringdata0[9];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_m_button_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_m_button_t qt_meta_stringdata_m_button = {
{
QT_MOC_LITERAL(0, 0, 8) // "m_button"
},
"m_button"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_m_button[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void m_button::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject m_button::staticMetaObject = { {
&QPushButton::staticMetaObject,
qt_meta_stringdata_m_button.data,
qt_meta_data_m_button,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *m_button::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *m_button::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_m_button.stringdata0))
return static_cast<void*>(this);
return QPushButton::qt_metacast(_clname);
}
int m_button::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QPushButton::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,124 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'daemonipcdbus.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/daemonipcdbus.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'daemonipcdbus.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_DaemonIpcDbus_t {
QByteArrayData data[5];
char stringdata0[52];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DaemonIpcDbus_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DaemonIpcDbus_t qt_meta_stringdata_DaemonIpcDbus = {
{
QT_MOC_LITERAL(0, 0, 13), // "DaemonIpcDbus"
QT_MOC_LITERAL(1, 14, 18), // "daemonIsNotRunning"
QT_MOC_LITERAL(2, 33, 0), // ""
QT_MOC_LITERAL(3, 34, 9), // "showGuide"
QT_MOC_LITERAL(4, 44, 7) // "appName"
},
"DaemonIpcDbus\0daemonIsNotRunning\0\0"
"showGuide\0appName"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DaemonIpcDbus[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 0, 24, 2, 0x0a /* Public */,
3, 1, 25, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Int,
QMetaType::Void, QMetaType::QString, 4,
0 // eod
};
void DaemonIpcDbus::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<DaemonIpcDbus *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: { int _r = _t->daemonIsNotRunning();
if (_a[0]) *reinterpret_cast< int*>(_a[0]) = std::move(_r); } break;
case 1: _t->showGuide((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
}
}
QT_INIT_METAOBJECT const QMetaObject DaemonIpcDbus::staticMetaObject = { {
&QObject::staticMetaObject,
qt_meta_stringdata_DaemonIpcDbus.data,
qt_meta_data_DaemonIpcDbus,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *DaemonIpcDbus::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DaemonIpcDbus::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_DaemonIpcDbus.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int DaemonIpcDbus::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 2;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,94 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'deletepkglistwig.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/deletepkglistwig.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'deletepkglistwig.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_DeletePkgListWig_t {
QByteArrayData data[1];
char stringdata0[17];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_DeletePkgListWig_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_DeletePkgListWig_t qt_meta_stringdata_DeletePkgListWig = {
{
QT_MOC_LITERAL(0, 0, 16) // "DeletePkgListWig"
},
"DeletePkgListWig"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_DeletePkgListWig[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void DeletePkgListWig::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject DeletePkgListWig::staticMetaObject = { {
&QFrame::staticMetaObject,
qt_meta_stringdata_DeletePkgListWig.data,
qt_meta_data_DeletePkgListWig,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *DeletePkgListWig::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *DeletePkgListWig::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_DeletePkgListWig.stringdata0))
return static_cast<void*>(this);
return QFrame::qt_metacast(_clname);
}
int DeletePkgListWig::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QFrame::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,94 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'historyupdatelistwig.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/historyupdatelistwig.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'historyupdatelistwig.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_HistoryUpdateListWig_t {
QByteArrayData data[1];
char stringdata0[21];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_HistoryUpdateListWig_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_HistoryUpdateListWig_t qt_meta_stringdata_HistoryUpdateListWig = {
{
QT_MOC_LITERAL(0, 0, 20) // "HistoryUpdateListWig"
},
"HistoryUpdateListWig"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_HistoryUpdateListWig[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void HistoryUpdateListWig::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject HistoryUpdateListWig::staticMetaObject = { {
&QFrame::staticMetaObject,
qt_meta_stringdata_HistoryUpdateListWig.data,
qt_meta_data_HistoryUpdateListWig,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *HistoryUpdateListWig::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *HistoryUpdateListWig::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_HistoryUpdateListWig.stringdata0))
return static_cast<void*>(this);
return QFrame::qt_metacast(_clname);
}
int HistoryUpdateListWig::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QFrame::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,181 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'm_updatelog.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/m_updatelog.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'm_updatelog.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_m_updatelog_t {
QByteArrayData data[21];
char stringdata0[225];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_m_updatelog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_m_updatelog_t qt_meta_stringdata_m_updatelog = {
{
QT_MOC_LITERAL(0, 0, 11), // "m_updatelog"
QT_MOC_LITERAL(1, 12, 16), // "historyUpdateNow"
QT_MOC_LITERAL(2, 29, 0), // ""
QT_MOC_LITERAL(3, 30, 4), // "str1"
QT_MOC_LITERAL(4, 35, 4), // "str2"
QT_MOC_LITERAL(5, 40, 9), // "slotClose"
QT_MOC_LITERAL(6, 50, 6), // "initUI"
QT_MOC_LITERAL(7, 57, 13), // "initGsettings"
QT_MOC_LITERAL(8, 71, 18), // "dynamicLoadingInit"
QT_MOC_LITERAL(9, 90, 14), // "dynamicLoading"
QT_MOC_LITERAL(10, 105, 1), // "i"
QT_MOC_LITERAL(11, 107, 9), // "updatesql"
QT_MOC_LITERAL(12, 117, 5), // "start"
QT_MOC_LITERAL(13, 123, 3), // "num"
QT_MOC_LITERAL(14, 127, 5), // "intop"
QT_MOC_LITERAL(15, 133, 11), // "defaultItem"
QT_MOC_LITERAL(16, 145, 25), // "translationVirtualPackage"
QT_MOC_LITERAL(17, 171, 3), // "str"
QT_MOC_LITERAL(18, 175, 26), // "changeListWidgetItemHeight"
QT_MOC_LITERAL(19, 202, 10), // "slotSearch"
QT_MOC_LITERAL(20, 213, 11) // "packageName"
},
"m_updatelog\0historyUpdateNow\0\0str1\0"
"str2\0slotClose\0initUI\0initGsettings\0"
"dynamicLoadingInit\0dynamicLoading\0i\0"
"updatesql\0start\0num\0intop\0defaultItem\0"
"translationVirtualPackage\0str\0"
"changeListWidgetItemHeight\0slotSearch\0"
"packageName"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_m_updatelog[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
14, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 2, 84, 2, 0x0a /* Public */,
5, 0, 89, 2, 0x0a /* Public */,
6, 0, 90, 2, 0x08 /* Private */,
7, 0, 91, 2, 0x08 /* Private */,
8, 0, 92, 2, 0x08 /* Private */,
9, 1, 93, 2, 0x08 /* Private */,
11, 3, 96, 2, 0x08 /* Private */,
11, 2, 103, 2, 0x28 /* Private | MethodCloned */,
11, 1, 108, 2, 0x28 /* Private | MethodCloned */,
11, 0, 111, 2, 0x28 /* Private | MethodCloned */,
15, 0, 112, 2, 0x08 /* Private */,
16, 1, 113, 2, 0x08 /* Private */,
18, 0, 116, 2, 0x08 /* Private */,
19, 1, 117, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Void, QMetaType::QString, QMetaType::QString, 3, 4,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Int, 10,
QMetaType::Void, QMetaType::Int, QMetaType::Int, QMetaType::QString, 12, 13, 14,
QMetaType::Void, QMetaType::Int, QMetaType::Int, 12, 13,
QMetaType::Void, QMetaType::Int, 12,
QMetaType::Void,
QMetaType::Void,
QMetaType::QString, QMetaType::QString, 17,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, 20,
0 // eod
};
void m_updatelog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<m_updatelog *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->historyUpdateNow((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 1: _t->slotClose(); break;
case 2: _t->initUI(); break;
case 3: _t->initGsettings(); break;
case 4: _t->dynamicLoadingInit(); break;
case 5: _t->dynamicLoading((*reinterpret_cast< int(*)>(_a[1]))); break;
case 6: _t->updatesql((*reinterpret_cast< const int(*)>(_a[1])),(*reinterpret_cast< const int(*)>(_a[2])),(*reinterpret_cast< const QString(*)>(_a[3]))); break;
case 7: _t->updatesql((*reinterpret_cast< const int(*)>(_a[1])),(*reinterpret_cast< const int(*)>(_a[2]))); break;
case 8: _t->updatesql((*reinterpret_cast< const int(*)>(_a[1]))); break;
case 9: _t->updatesql(); break;
case 10: _t->defaultItem(); break;
case 11: { QString _r = _t->translationVirtualPackage((*reinterpret_cast< QString(*)>(_a[1])));
if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = std::move(_r); } break;
case 12: _t->changeListWidgetItemHeight(); break;
case 13: _t->slotSearch((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
}
}
QT_INIT_METAOBJECT const QMetaObject m_updatelog::staticMetaObject = { {
&QDialog::staticMetaObject,
qt_meta_stringdata_m_updatelog.data,
qt_meta_data_m_updatelog,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *m_updatelog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *m_updatelog::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_m_updatelog.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int m_updatelog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 14)
qt_static_metacall(this, _c, _id, _a);
_id -= 14;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 14)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 14;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,94 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'mylabel.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/mylabel.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'mylabel.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_MyLabel_t {
QByteArrayData data[1];
char stringdata0[8];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_MyLabel_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_MyLabel_t qt_meta_stringdata_MyLabel = {
{
QT_MOC_LITERAL(0, 0, 7) // "MyLabel"
},
"MyLabel"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_MyLabel[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void MyLabel::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject MyLabel::staticMetaObject = { {
&QLabel::staticMetaObject,
qt_meta_stringdata_MyLabel.data,
qt_meta_data_MyLabel,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *MyLabel::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *MyLabel::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_MyLabel.stringdata0))
return static_cast<void*>(this);
return QLabel::qt_metacast(_clname);
}
int MyLabel::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QLabel::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,94 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'picturetowhite.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/picturetowhite.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'picturetowhite.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_PictureToWhite_t {
QByteArrayData data[1];
char stringdata0[15];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_PictureToWhite_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_PictureToWhite_t qt_meta_stringdata_PictureToWhite = {
{
QT_MOC_LITERAL(0, 0, 14) // "PictureToWhite"
},
"PictureToWhite"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_PictureToWhite[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void PictureToWhite::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject PictureToWhite::staticMetaObject = { {
&QObject::staticMetaObject,
qt_meta_stringdata_PictureToWhite.data,
qt_meta_data_PictureToWhite,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *PictureToWhite::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *PictureToWhite::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_PictureToWhite.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int PictureToWhite::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,383 +0,0 @@
#define __SSP_STRONG__ 3
#define __DBL_MIN_EXP__ (-1021)
#define __FLT32X_MAX_EXP__ 1024
#define __cpp_attributes 200809
#define __UINT_LEAST16_MAX__ 0xffff
#define __ATOMIC_ACQUIRE 2
#define __FLT128_MAX_10_EXP__ 4932
#define __FLT_MIN__ 1.17549435082228750796873653722224568e-38F
#define __GCC_IEC_559_COMPLEX 2
#define __UINT_LEAST8_TYPE__ unsigned char
#define __SIZEOF_FLOAT80__ 16
#define __INTMAX_C(c) c ## L
#define __CHAR_BIT__ 8
#define __UINT8_MAX__ 0xff
#define __WINT_MAX__ 0xffffffffU
#define __FLT32_MIN_EXP__ (-125)
#define __cpp_static_assert 200410
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __SIZE_MAX__ 0xffffffffffffffffUL
#define __WCHAR_MAX__ 0x7fffffff
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
#define __DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)
#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
#define __GCC_IEC_559 2
#define __FLT32X_DECIMAL_DIG__ 17
#define __FLT_EVAL_METHOD__ 0
#define __unix__ 1
#define __cpp_binary_literals 201304
#define __FLT64_DECIMAL_DIG__ 17
#define __CET__ 3
#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
#define __x86_64 1
#define __cpp_variadic_templates 200704
#define __UINT_FAST64_MAX__ 0xffffffffffffffffUL
#define __SIG_ATOMIC_TYPE__ int
#define __DBL_MIN_10_EXP__ (-307)
#define __FINITE_MATH_ONLY__ 0
#define __GNUC_PATCHLEVEL__ 0
#define __FLT32_HAS_DENORM__ 1
#define __UINT_FAST8_MAX__ 0xff
#define __cpp_rvalue_reference 200610
#define __has_include(STR) __has_include__(STR)
#define __DEC64_MAX_EXP__ 385
#define __INT8_C(c) c
#define __INT_LEAST8_WIDTH__ 8
#define __UINT_LEAST64_MAX__ 0xffffffffffffffffUL
#define __SHRT_MAX__ 0x7fff
#define __LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L
#define __FLT64X_MAX_10_EXP__ 4932
#define __UINT_LEAST8_MAX__ 0xff
#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
#define __FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128
#define __UINTMAX_TYPE__ long unsigned int
#define __linux 1
#define __DEC32_EPSILON__ 1E-6DF
#define __FLT_EVAL_METHOD_TS_18661_3__ 0
#define __OPTIMIZE__ 1
#define __unix 1
#define __UINT32_MAX__ 0xffffffffU
#define __GXX_EXPERIMENTAL_CXX0X__ 1
#define __LDBL_MAX_EXP__ 16384
#define __FLT128_MIN_EXP__ (-16381)
#define __WINT_MIN__ 0U
#define __linux__ 1
#define __FLT128_MIN_10_EXP__ (-4931)
#define __INT_LEAST16_WIDTH__ 16
#define __SCHAR_MAX__ 0x7f
#define __FLT128_MANT_DIG__ 113
#define __WCHAR_MIN__ (-__WCHAR_MAX__ - 1)
#define __INT64_C(c) c ## L
#define __DBL_DIG__ 15
#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
#define __FLT64X_MANT_DIG__ 64
#define _FORTIFY_SOURCE 2
#define __SIZEOF_INT__ 4
#define __SIZEOF_POINTER__ 8
#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
#define __USER_LABEL_PREFIX__
#define __FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x
#define __STDC_HOSTED__ 1
#define __LDBL_HAS_INFINITY__ 1
#define __FLT32_DIG__ 6
#define __FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F
#define __GXX_WEAK__ 1
#define __SHRT_WIDTH__ 16
#define __LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L
#define __DEC32_MAX__ 9.999999E96DF
#define __cpp_threadsafe_static_init 200806
#define __FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x
#define __FLT32X_HAS_INFINITY__ 1
#define __INT32_MAX__ 0x7fffffff
#define __INT_WIDTH__ 32
#define __SIZEOF_LONG__ 8
#define __STDC_IEC_559__ 1
#define __STDC_ISO_10646__ 201706L
#define __UINT16_C(c) c
#define __PTRDIFF_WIDTH__ 64
#define __DECIMAL_DIG__ 21
#define __FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64
#define __gnu_linux__ 1
#define __INTMAX_WIDTH__ 64
#define __FLT64_MIN_EXP__ (-1021)
#define __has_include_next(STR) __has_include_next__(STR)
#define __FLT64X_MIN_10_EXP__ (-4931)
#define __LDBL_HAS_QUIET_NAN__ 1
#define __FLT64_MANT_DIG__ 53
#define __GNUC__ 9
#define __GXX_RTTI 1
#define __pie__ 2
#define __MMX__ 1
#define __cpp_delegating_constructors 200604
#define __FLT_HAS_DENORM__ 1
#define __SIZEOF_LONG_DOUBLE__ 16
#define __BIGGEST_ALIGNMENT__ 16
#define __STDC_UTF_16__ 1
#define __FLT64_MAX_10_EXP__ 308
#define __FLT32_HAS_INFINITY__ 1
#define __DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)
#define __cpp_raw_strings 200710
#define __INT_FAST32_MAX__ 0x7fffffffffffffffL
#define __DBL_HAS_INFINITY__ 1
#define __HAVE_SPECULATION_SAFE_VALUE 1
#define __DEC32_MIN_EXP__ (-94)
#define __INTPTR_WIDTH__ 64
#define __FLT32X_HAS_DENORM__ 1
#define __INT_FAST16_TYPE__ long int
#define __LDBL_HAS_DENORM__ 1
#define __cplusplus 201103L
#define __cpp_ref_qualifiers 200710
#define __DEC128_MAX__ 9.999999999999999999999999999999999E6144DL
#define __INT_LEAST32_MAX__ 0x7fffffff
#define __DEC32_MIN__ 1E-95DF
#define __DEPRECATED 1
#define __cpp_rvalue_references 200610
#define __DBL_MAX_EXP__ 1024
#define __WCHAR_WIDTH__ 32
#define __FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32
#define __DEC128_EPSILON__ 1E-33DL
#define __SSE2_MATH__ 1
#define __ATOMIC_HLE_RELEASE 131072
#define __PTRDIFF_MAX__ 0x7fffffffffffffffL
#define __amd64 1
#define __ATOMIC_HLE_ACQUIRE 65536
#define __FLT32_HAS_QUIET_NAN__ 1
#define __GNUG__ 9
#define __LONG_LONG_MAX__ 0x7fffffffffffffffLL
#define __SIZEOF_SIZE_T__ 8
#define __cpp_nsdmi 200809
#define __FLT64X_MIN_EXP__ (-16381)
#define __SIZEOF_WINT_T__ 4
#define __LONG_LONG_WIDTH__ 64
#define __cpp_initializer_lists 200806
#define __FLT32_MAX_EXP__ 128
#define __cpp_hex_float 201603
#define __GCC_HAVE_DWARF2_CFI_ASM 1
#define __GXX_ABI_VERSION 1013
#define __FLT128_HAS_INFINITY__ 1
#define __FLT_MIN_EXP__ (-125)
#define __cpp_lambdas 200907
#define __FLT64X_HAS_QUIET_NAN__ 1
#define __INT_FAST64_TYPE__ long int
#define __FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64
#define __DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)
#define __PIE__ 2
#define __LP64__ 1
#define __FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x
#define __DECIMAL_BID_FORMAT__ 1
#define __FLT64_MIN_10_EXP__ (-307)
#define __FLT64X_DECIMAL_DIG__ 21
#define __DEC128_MIN__ 1E-6143DL
#define __REGISTER_PREFIX__
#define __UINT16_MAX__ 0xffff
#define __FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32
#define __UINT8_TYPE__ unsigned char
#define __FLT_MANT_DIG__ 24
#define __LDBL_DECIMAL_DIG__ 21
#define __VERSION__ "9.3.0"
#define __UINT64_C(c) c ## UL
#define __cpp_unicode_characters 200704
#define _STDC_PREDEF_H 1
#define __GCC_ATOMIC_INT_LOCK_FREE 2
#define __FLT128_MAX_EXP__ 16384
#define __FLT32_MANT_DIG__ 24
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __STDC_IEC_559_COMPLEX__ 1
#define __FLT128_HAS_DENORM__ 1
#define __FLT128_DIG__ 33
#define __SCHAR_WIDTH__ 8
#define __INT32_C(c) c
#define __DEC64_EPSILON__ 1E-15DD
#define __ORDER_PDP_ENDIAN__ 3412
#define __DEC128_MIN_EXP__ (-6142)
#define __FLT32_MAX_10_EXP__ 38
#define __INT_FAST32_TYPE__ long int
#define __UINT_LEAST16_TYPE__ short unsigned int
#define __FLT64X_HAS_INFINITY__ 1
#define unix 1
#define __DBL_HAS_DENORM__ 1
#define __INT16_MAX__ 0x7fff
#define __cpp_rtti 199711
#define __SIZE_TYPE__ long unsigned int
#define __UINT64_MAX__ 0xffffffffffffffffUL
#define __FLT64X_DIG__ 18
#define __INT8_TYPE__ signed char
#define __ELF__ 1
#define __GCC_ASM_FLAG_OUTPUTS__ 1
#define __FLT_RADIX__ 2
#define __INT_LEAST16_TYPE__ short int
#define __LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L
#define __UINTMAX_C(c) c ## UL
#define __GLIBCXX_BITSIZE_INT_N_0 128
#define __k8 1
#define __SIG_ATOMIC_MAX__ 0x7fffffff
#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
#define __SIZEOF_PTRDIFF_T__ 8
#define __FLT32X_MANT_DIG__ 53
#define __x86_64__ 1
#define __FLT32X_MIN_EXP__ (-1021)
#define __DEC32_SUBNORMAL_MIN__ 0.000001E-95DF
#define __INT_FAST16_MAX__ 0x7fffffffffffffffL
#define __FLT64_DIG__ 15
#define __UINT_FAST32_MAX__ 0xffffffffffffffffUL
#define __UINT_LEAST64_TYPE__ long unsigned int
#define __FLT_HAS_QUIET_NAN__ 1
#define __FLT_MAX_10_EXP__ 38
#define __LONG_MAX__ 0x7fffffffffffffffL
#define __FLT64X_HAS_DENORM__ 1
#define __DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL
#define __FLT_HAS_INFINITY__ 1
#define __cpp_unicode_literals 200710
#define __UINT_FAST16_TYPE__ long unsigned int
#define __DEC64_MAX__ 9.999999999999999E384DD
#define __INT_FAST32_WIDTH__ 64
#define __CHAR16_TYPE__ short unsigned int
#define __PRAGMA_REDEFINE_EXTNAME 1
#define __SIZE_WIDTH__ 64
#define __SEG_FS 1
#define __INT_LEAST16_MAX__ 0x7fff
#define __DEC64_MANT_DIG__ 16
#define __INT64_MAX__ 0x7fffffffffffffffL
#define __UINT_LEAST32_MAX__ 0xffffffffU
#define __SEG_GS 1
#define __FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32
#define __GCC_ATOMIC_LONG_LOCK_FREE 2
#define __SIG_ATOMIC_WIDTH__ 32
#define __INT_LEAST64_TYPE__ long int
#define __INT16_TYPE__ short int
#define __INT_LEAST8_TYPE__ signed char
#define __DEC32_MAX_EXP__ 97
#define __INT_FAST8_MAX__ 0x7f
#define __FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128
#define __INTPTR_MAX__ 0x7fffffffffffffffL
#define linux 1
#define __cpp_range_based_for 200907
#define __FLT64_HAS_QUIET_NAN__ 1
#define __FLT32_MIN_10_EXP__ (-37)
#define __SSE2__ 1
#define __EXCEPTIONS 1
#define __LDBL_MANT_DIG__ 64
#define __DBL_HAS_QUIET_NAN__ 1
#define __FLT64_HAS_INFINITY__ 1
#define __FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x
#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
#define __code_model_small__ 1
#define __k8__ 1
#define __INTPTR_TYPE__ long int
#define __UINT16_TYPE__ short unsigned int
#define __WCHAR_TYPE__ int
#define __SIZEOF_FLOAT__ 4
#define __pic__ 2
#define __UINTPTR_MAX__ 0xffffffffffffffffUL
#define __INT_FAST64_WIDTH__ 64
#define __DEC64_MIN_EXP__ (-382)
#define __cpp_decltype 200707
#define __FLT32_DECIMAL_DIG__ 9
#define __INT_FAST64_MAX__ 0x7fffffffffffffffL
#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
#define __FLT_DIG__ 6
#define __FLT64X_MAX_EXP__ 16384
#define __UINT_FAST64_TYPE__ long unsigned int
#define __INT_MAX__ 0x7fffffff
#define __amd64__ 1
#define __INT64_TYPE__ long int
#define __FLT_MAX_EXP__ 128
#define __ORDER_BIG_ENDIAN__ 4321
#define __DBL_MANT_DIG__ 53
#define __cpp_inheriting_constructors 201511
#define __SIZEOF_FLOAT128__ 16
#define __INT_LEAST64_MAX__ 0x7fffffffffffffffL
#define __DEC64_MIN__ 1E-383DD
#define __WINT_TYPE__ unsigned int
#define __UINT_LEAST32_TYPE__ unsigned int
#define __SIZEOF_SHORT__ 2
#define __SSE__ 1
#define __LDBL_MIN_EXP__ (-16381)
#define __FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64
#define __WINT_WIDTH__ 32
#define __INT_LEAST8_MAX__ 0x7f
#define __FLT32X_MAX_10_EXP__ 308
#define __SIZEOF_INT128__ 16
#define __LDBL_MAX_10_EXP__ 4932
#define __ATOMIC_RELAXED 0
#define __DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)
#define __FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128
#define _LP64 1
#define __UINT8_C(c) c
#define __FLT64_MAX_EXP__ 1024
#define __INT_LEAST32_TYPE__ int
#define __SIZEOF_WCHAR_T__ 4
#define __FLT128_HAS_QUIET_NAN__ 1
#define __INT_FAST8_TYPE__ signed char
#define __FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x
#define __GNUC_STDC_INLINE__ 1
#define __FLT64_HAS_DENORM__ 1
#define __FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32
#define __DBL_DECIMAL_DIG__ 17
#define __STDC_UTF_32__ 1
#define __INT_FAST8_WIDTH__ 8
#define __FXSR__ 1
#define __DEC_EVAL_METHOD__ 2
#define __FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x
#define __cpp_runtime_arrays 198712
#define __UINT64_TYPE__ long unsigned int
#define __UINT32_C(c) c ## U
#define __INTMAX_MAX__ 0x7fffffffffffffffL
#define __cpp_alias_templates 200704
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F
#define __INT8_MAX__ 0x7f
#define __LONG_WIDTH__ 64
#define __PIC__ 2
#define __UINT_FAST32_TYPE__ long unsigned int
#define __CHAR32_TYPE__ unsigned int
#define __FLT_MAX__ 3.40282346638528859811704183484516925e+38F
#define __cpp_constexpr 200704
#define __INT32_TYPE__ int
#define __SIZEOF_DOUBLE__ 8
#define __cpp_exceptions 199711
#define __FLT_MIN_10_EXP__ (-37)
#define __FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64
#define __INT_LEAST32_WIDTH__ 32
#define __INTMAX_TYPE__ long int
#define __DEC128_MAX_EXP__ 6145
#define __FLT32X_HAS_QUIET_NAN__ 1
#define __ATOMIC_CONSUME 1
#define __GNUC_MINOR__ 3
#define __GLIBCXX_TYPE_INT_N_0 __int128
#define __INT_FAST16_WIDTH__ 64
#define __UINTMAX_MAX__ 0xffffffffffffffffUL
#define __DEC32_MANT_DIG__ 7
#define __FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x
#define __DBL_MAX_10_EXP__ 308
#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L
#define __INT16_C(c) c
#define __STDC__ 1
#define __FLT32X_DIG__ 15
#define __PTRDIFF_TYPE__ long int
#define __ATOMIC_SEQ_CST 5
#define __UINT32_TYPE__ unsigned int
#define __FLT32X_MIN_10_EXP__ (-307)
#define __UINTPTR_TYPE__ long unsigned int
#define __DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD
#define __DEC128_MANT_DIG__ 34
#define __LDBL_MIN_10_EXP__ (-4931)
#define __FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128
#define __SSE_MATH__ 1
#define __SIZEOF_LONG_LONG__ 8
#define __cpp_user_defined_literals 200809
#define __FLT128_DECIMAL_DIG__ 36
#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
#define __FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x
#define __LDBL_DIG__ 18
#define __FLT_DECIMAL_DIG__ 9
#define __UINT_FAST16_MAX__ 0xffffffffffffffffUL
#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
#define __INT_LEAST64_WIDTH__ 64
#define __UINT_FAST8_TYPE__ unsigned char
#define _GNU_SOURCE 1
#define __ATOMIC_ACQ_REL 4
#define __ATOMIC_RELEASE 3

View File

@ -1,361 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'tabwidget.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/tabwidget.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'tabwidget.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_TabWid_t {
QByteArrayData data[60];
char stringdata0[886];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_TabWid_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_TabWid_t qt_meta_stringdata_TabWid = {
{
QT_MOC_LITERAL(0, 0, 6), // "TabWid"
QT_MOC_LITERAL(1, 7, 15), // "updateAllSignal"
QT_MOC_LITERAL(2, 23, 0), // ""
QT_MOC_LITERAL(3, 24, 6), // "status"
QT_MOC_LITERAL(4, 31, 10), // "needBackUp"
QT_MOC_LITERAL(5, 42, 11), // "startBackUp"
QT_MOC_LITERAL(6, 54, 17), // "showHistoryWidget"
QT_MOC_LITERAL(7, 72, 21), // "showDependSlovePtompt"
QT_MOC_LITERAL(8, 94, 10), // "updatemode"
QT_MOC_LITERAL(9, 105, 7), // "pkgname"
QT_MOC_LITERAL(10, 113, 11), // "description"
QT_MOC_LITERAL(11, 125, 12), // "deletereason"
QT_MOC_LITERAL(12, 138, 20), // "isAutoCheckedChanged"
QT_MOC_LITERAL(13, 159, 20), // "isAutoUpgradeChanged"
QT_MOC_LITERAL(14, 180, 18), // "slotCancelDownload"
QT_MOC_LITERAL(15, 199, 23), // "loadingOneUpdateMsgSlot"
QT_MOC_LITERAL(16, 223, 9), // "AppAllMsg"
QT_MOC_LITERAL(17, 233, 3), // "msg"
QT_MOC_LITERAL(18, 237, 19), // "loadingFinishedSlot"
QT_MOC_LITERAL(19, 257, 4), // "size"
QT_MOC_LITERAL(20, 262, 20), // "waitCrucialInstalled"
QT_MOC_LITERAL(21, 283, 17), // "hideUpdateBtnSlot"
QT_MOC_LITERAL(22, 301, 5), // "state"
QT_MOC_LITERAL(23, 307, 5), // "error"
QT_MOC_LITERAL(24, 313, 6), // "reason"
QT_MOC_LITERAL(25, 320, 22), // "oneappUpdateresultSlot"
QT_MOC_LITERAL(26, 343, 22), // "allappupdatefinishSlot"
QT_MOC_LITERAL(27, 366, 19), // "changeUpdateAllSlot"
QT_MOC_LITERAL(28, 386, 8), // "isUpdate"
QT_MOC_LITERAL(29, 395, 12), // "updatecancel"
QT_MOC_LITERAL(30, 408, 26), // "DownloadLimitSwitchChanged"
QT_MOC_LITERAL(31, 435, 25), // "DownloadLimitValueChanged"
QT_MOC_LITERAL(32, 461, 14), // "getAllProgress"
QT_MOC_LITERAL(33, 476, 7), // "pkgName"
QT_MOC_LITERAL(34, 484, 8), // "Progress"
QT_MOC_LITERAL(35, 493, 10), // "detailinfo"
QT_MOC_LITERAL(36, 504, 16), // "showDownloadInfo"
QT_MOC_LITERAL(37, 521, 19), // "DependResloveResult"
QT_MOC_LITERAL(38, 541, 13), // "ResloveStatus"
QT_MOC_LITERAL(39, 555, 7), // "Reslove"
QT_MOC_LITERAL(40, 563, 13), // "deletepkglist"
QT_MOC_LITERAL(41, 577, 16), // "DeletePkgDeslist"
QT_MOC_LITERAL(42, 594, 19), // "DeletePkgReasonlist"
QT_MOC_LITERAL(43, 614, 30), // "DistupgradeDependResloveResult"
QT_MOC_LITERAL(44, 645, 18), // "slotUpdateTemplate"
QT_MOC_LITERAL(45, 664, 15), // "slotUpdateCache"
QT_MOC_LITERAL(46, 680, 6), // "result"
QT_MOC_LITERAL(47, 687, 23), // "slotUpdateCacheProgress"
QT_MOC_LITERAL(48, 711, 8), // "progress"
QT_MOC_LITERAL(49, 720, 8), // "initDbus"
QT_MOC_LITERAL(50, 729, 15), // "slotReconnTimes"
QT_MOC_LITERAL(51, 745, 5), // "times"
QT_MOC_LITERAL(52, 751, 13), // "isCancelabled"
QT_MOC_LITERAL(53, 765, 12), // "bakeupFinish"
QT_MOC_LITERAL(54, 778, 14), // "backupProgress"
QT_MOC_LITERAL(55, 793, 19), // "isAutoBackupChanged"
QT_MOC_LITERAL(56, 813, 17), // "getReplyFalseSlot"
QT_MOC_LITERAL(57, 831, 12), // "dbusFinished"
QT_MOC_LITERAL(58, 844, 24), // "receiveBackupStartResult"
QT_MOC_LITERAL(59, 869, 16) // "whenStateIsDuing"
},
"TabWid\0updateAllSignal\0\0status\0"
"needBackUp\0startBackUp\0showHistoryWidget\0"
"showDependSlovePtompt\0updatemode\0"
"pkgname\0description\0deletereason\0"
"isAutoCheckedChanged\0isAutoUpgradeChanged\0"
"slotCancelDownload\0loadingOneUpdateMsgSlot\0"
"AppAllMsg\0msg\0loadingFinishedSlot\0"
"size\0waitCrucialInstalled\0hideUpdateBtnSlot\0"
"state\0error\0reason\0oneappUpdateresultSlot\0"
"allappupdatefinishSlot\0changeUpdateAllSlot\0"
"isUpdate\0updatecancel\0DownloadLimitSwitchChanged\0"
"DownloadLimitValueChanged\0getAllProgress\0"
"pkgName\0Progress\0detailinfo\0"
"showDownloadInfo\0DependResloveResult\0"
"ResloveStatus\0Reslove\0deletepkglist\0"
"DeletePkgDeslist\0DeletePkgReasonlist\0"
"DistupgradeDependResloveResult\0"
"slotUpdateTemplate\0slotUpdateCache\0"
"result\0slotUpdateCacheProgress\0progress\0"
"initDbus\0slotReconnTimes\0times\0"
"isCancelabled\0bakeupFinish\0backupProgress\0"
"isAutoBackupChanged\0getReplyFalseSlot\0"
"dbusFinished\0receiveBackupStartResult\0"
"whenStateIsDuing"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_TabWid[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
35, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
3, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 189, 2, 0x06 /* Public */,
4, 0, 192, 2, 0x06 /* Public */,
5, 1, 193, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
6, 0, 196, 2, 0x0a /* Public */,
7, 4, 197, 2, 0x0a /* Public */,
12, 0, 206, 2, 0x0a /* Public */,
13, 0, 207, 2, 0x0a /* Public */,
14, 0, 208, 2, 0x0a /* Public */,
15, 1, 209, 2, 0x0a /* Public */,
18, 1, 212, 2, 0x0a /* Public */,
20, 0, 215, 2, 0x0a /* Public */,
21, 4, 216, 2, 0x0a /* Public */,
25, 4, 225, 2, 0x0a /* Public */,
26, 0, 234, 2, 0x0a /* Public */,
27, 1, 235, 2, 0x0a /* Public */,
29, 0, 238, 2, 0x0a /* Public */,
30, 0, 239, 2, 0x0a /* Public */,
31, 1, 240, 2, 0x0a /* Public */,
32, 4, 243, 2, 0x0a /* Public */,
36, 5, 252, 2, 0x0a /* Public */,
37, 7, 263, 2, 0x0a /* Public */,
43, 6, 278, 2, 0x0a /* Public */,
44, 1, 291, 2, 0x0a /* Public */,
45, 4, 294, 2, 0x0a /* Public */,
47, 2, 303, 2, 0x0a /* Public */,
49, 0, 308, 2, 0x0a /* Public */,
50, 1, 309, 2, 0x0a /* Public */,
52, 1, 312, 2, 0x0a /* Public */,
53, 1, 315, 2, 0x0a /* Public */,
54, 1, 318, 2, 0x0a /* Public */,
55, 0, 321, 2, 0x0a /* Public */,
56, 0, 322, 2, 0x0a /* Public */,
57, 0, 323, 2, 0x0a /* Public */,
58, 1, 324, 2, 0x08 /* Private */,
59, 0, 327, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, QMetaType::Bool, 3,
QMetaType::Int,
QMetaType::Void, QMetaType::Int, 2,
// slots: parameters
QMetaType::Void,
QMetaType::Void, QMetaType::Int, QMetaType::QStringList, QMetaType::QStringList, QMetaType::QStringList, 8, 9, 10, 11,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 16, 17,
QMetaType::Void, QMetaType::Int, 19,
QMetaType::Void,
QMetaType::Void, QMetaType::Bool, QMetaType::QStringList, QMetaType::QString, QMetaType::QString, 22, 9, 23, 24,
QMetaType::Void, QMetaType::Bool, QMetaType::QStringList, QMetaType::QString, QMetaType::QString, 22, 9, 23, 24,
QMetaType::Void,
QMetaType::Void, QMetaType::Bool, 28,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, 2,
QMetaType::Void, QMetaType::QStringList, QMetaType::Int, QMetaType::QString, QMetaType::QString, 33, 34, 3, 35,
QMetaType::Void, QMetaType::Int, QMetaType::Int, QMetaType::Int, QMetaType::Int, QMetaType::Int, 2, 2, 2, 2, 2,
QMetaType::Void, QMetaType::Bool, QMetaType::Bool, QMetaType::QStringList, QMetaType::QStringList, QMetaType::QStringList, QMetaType::QString, QMetaType::QString, 38, 39, 40, 41, 42, 23, 2,
QMetaType::Void, QMetaType::Bool, QMetaType::Bool, QMetaType::QStringList, QMetaType::QStringList, QMetaType::QString, QMetaType::QString, 38, 39, 40, 41, 23, 2,
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void, QMetaType::Bool, QMetaType::QStringList, QMetaType::QString, QMetaType::QString, 46, 9, 23, 24,
QMetaType::Void, QMetaType::Int, QMetaType::QString, 48, 3,
QMetaType::Void,
QMetaType::Void, QMetaType::Int, 51,
QMetaType::Void, QMetaType::Bool, 3,
QMetaType::Void, QMetaType::Int, 2,
QMetaType::Void, QMetaType::Int, 2,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Int, 46,
QMetaType::Void,
0 // eod
};
void TabWid::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<TabWid *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->updateAllSignal((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 1: { int _r = _t->needBackUp();
if (_a[0]) *reinterpret_cast< int*>(_a[0]) = std::move(_r); } break;
case 2: _t->startBackUp((*reinterpret_cast< int(*)>(_a[1]))); break;
case 3: _t->showHistoryWidget(); break;
case 4: _t->showDependSlovePtompt((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QStringList(*)>(_a[2])),(*reinterpret_cast< QStringList(*)>(_a[3])),(*reinterpret_cast< QStringList(*)>(_a[4]))); break;
case 5: _t->isAutoCheckedChanged(); break;
case 6: _t->isAutoUpgradeChanged(); break;
case 7: _t->slotCancelDownload(); break;
case 8: _t->loadingOneUpdateMsgSlot((*reinterpret_cast< AppAllMsg(*)>(_a[1]))); break;
case 9: _t->loadingFinishedSlot((*reinterpret_cast< int(*)>(_a[1]))); break;
case 10: _t->waitCrucialInstalled(); break;
case 11: _t->hideUpdateBtnSlot((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< QStringList(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3])),(*reinterpret_cast< QString(*)>(_a[4]))); break;
case 12: _t->oneappUpdateresultSlot((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< QStringList(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3])),(*reinterpret_cast< QString(*)>(_a[4]))); break;
case 13: _t->allappupdatefinishSlot(); break;
case 14: _t->changeUpdateAllSlot((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 15: _t->updatecancel(); break;
case 16: _t->DownloadLimitSwitchChanged(); break;
case 17: _t->DownloadLimitValueChanged((*reinterpret_cast< const QString(*)>(_a[1]))); break;
case 18: _t->getAllProgress((*reinterpret_cast< QStringList(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3])),(*reinterpret_cast< QString(*)>(_a[4]))); break;
case 19: _t->showDownloadInfo((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3])),(*reinterpret_cast< int(*)>(_a[4])),(*reinterpret_cast< int(*)>(_a[5]))); break;
case 20: _t->DependResloveResult((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2])),(*reinterpret_cast< QStringList(*)>(_a[3])),(*reinterpret_cast< QStringList(*)>(_a[4])),(*reinterpret_cast< QStringList(*)>(_a[5])),(*reinterpret_cast< QString(*)>(_a[6])),(*reinterpret_cast< QString(*)>(_a[7]))); break;
case 21: _t->DistupgradeDependResloveResult((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2])),(*reinterpret_cast< QStringList(*)>(_a[3])),(*reinterpret_cast< QStringList(*)>(_a[4])),(*reinterpret_cast< QString(*)>(_a[5])),(*reinterpret_cast< QString(*)>(_a[6]))); break;
case 22: _t->slotUpdateTemplate((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 23: _t->slotUpdateCache((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< QStringList(*)>(_a[2])),(*reinterpret_cast< QString(*)>(_a[3])),(*reinterpret_cast< QString(*)>(_a[4]))); break;
case 24: _t->slotUpdateCacheProgress((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 25: _t->initDbus(); break;
case 26: _t->slotReconnTimes((*reinterpret_cast< int(*)>(_a[1]))); break;
case 27: _t->isCancelabled((*reinterpret_cast< bool(*)>(_a[1]))); break;
case 28: _t->bakeupFinish((*reinterpret_cast< int(*)>(_a[1]))); break;
case 29: _t->backupProgress((*reinterpret_cast< int(*)>(_a[1]))); break;
case 30: _t->isAutoBackupChanged(); break;
case 31: _t->getReplyFalseSlot(); break;
case 32: _t->dbusFinished(); break;
case 33: _t->receiveBackupStartResult((*reinterpret_cast< int(*)>(_a[1]))); break;
case 34: _t->whenStateIsDuing(); break;
default: ;
}
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
switch (_id) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 8:
switch (*reinterpret_cast<int*>(_a[1])) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 0:
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< AppAllMsg >(); break;
}
break;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (TabWid::*)(bool );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TabWid::updateAllSignal)) {
*result = 0;
return;
}
}
{
using _t = int (TabWid::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TabWid::needBackUp)) {
*result = 1;
return;
}
}
{
using _t = void (TabWid::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&TabWid::startBackUp)) {
*result = 2;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject TabWid::staticMetaObject = { {
&QWidget::staticMetaObject,
qt_meta_stringdata_TabWid.data,
qt_meta_data_TabWid,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *TabWid::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *TabWid::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_TabWid.stringdata0))
return static_cast<void*>(this);
return QWidget::qt_metacast(_clname);
}
int TabWid::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 35)
qt_static_metacall(this, _c, _id, _a);
_id -= 35;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 35)
qt_static_metacall(this, _c, _id, _a);
_id -= 35;
}
return _id;
}
// SIGNAL 0
void TabWid::updateAllSignal(bool _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
int TabWid::needBackUp()
{
int _t0{};
void *_a[] = { const_cast<void*>(reinterpret_cast<const void*>(&_t0)) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
return _t0;
}
// SIGNAL 2
void TabWid::startBackUp(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 2, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,144 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'traybusthread.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/traybusthread.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'traybusthread.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_traybusthread_t {
QByteArrayData data[6];
char stringdata0[58];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_traybusthread_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_traybusthread_t qt_meta_stringdata_traybusthread = {
{
QT_MOC_LITERAL(0, 0, 13), // "traybusthread"
QT_MOC_LITERAL(1, 14, 6), // "result"
QT_MOC_LITERAL(2, 21, 0), // ""
QT_MOC_LITERAL(3, 22, 10), // "updateList"
QT_MOC_LITERAL(4, 33, 20), // "getInameAndCnameList"
QT_MOC_LITERAL(5, 54, 3) // "arg"
},
"traybusthread\0result\0\0updateList\0"
"getInameAndCnameList\0arg"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_traybusthread[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 24, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 1, 27, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QStringList, 3,
// slots: parameters
QMetaType::Void, QMetaType::QString, 5,
0 // eod
};
void traybusthread::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<traybusthread *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->result((*reinterpret_cast< QStringList(*)>(_a[1]))); break;
case 1: _t->getInameAndCnameList((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (traybusthread::*)(QStringList );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&traybusthread::result)) {
*result = 0;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject traybusthread::staticMetaObject = { {
&QThread::staticMetaObject,
qt_meta_stringdata_traybusthread.data,
qt_meta_data_traybusthread,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *traybusthread::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *traybusthread::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_traybusthread.stringdata0))
return static_cast<void*>(this);
return QThread::qt_metacast(_clname);
}
int traybusthread::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QThread::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 2;
}
return _id;
}
// SIGNAL 0
void traybusthread::result(QStringList _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,281 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'updatedbus.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/updatedbus.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'updatedbus.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_UpdateDbus_t {
QByteArrayData data[29];
char stringdata0[333];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_UpdateDbus_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_UpdateDbus_t qt_meta_stringdata_UpdateDbus = {
{
QT_MOC_LITERAL(0, 0, 10), // "UpdateDbus"
QT_MOC_LITERAL(1, 11, 10), // "copyFinish"
QT_MOC_LITERAL(2, 22, 0), // ""
QT_MOC_LITERAL(3, 23, 7), // "appName"
QT_MOC_LITERAL(4, 31, 19), // "transferAptProgress"
QT_MOC_LITERAL(5, 51, 6), // "status"
QT_MOC_LITERAL(6, 58, 10), // "aptPercent"
QT_MOC_LITERAL(7, 69, 8), // "errormsg"
QT_MOC_LITERAL(8, 78, 13), // "sendImportant"
QT_MOC_LITERAL(9, 92, 20), // "sendAppMessageSignal"
QT_MOC_LITERAL(10, 113, 9), // "AppAllMsg"
QT_MOC_LITERAL(11, 123, 3), // "msg"
QT_MOC_LITERAL(12, 127, 22), // "sendFinishGetMsgSignal"
QT_MOC_LITERAL(13, 150, 4), // "size"
QT_MOC_LITERAL(14, 155, 14), // "sendUpdateSize"
QT_MOC_LITERAL(15, 170, 12), // "getAptSignal"
QT_MOC_LITERAL(16, 183, 3), // "arg"
QT_MOC_LITERAL(17, 187, 3), // "map"
QT_MOC_LITERAL(18, 191, 16), // "slotCopyFinished"
QT_MOC_LITERAL(19, 208, 20), // "getInameAndCnameList"
QT_MOC_LITERAL(20, 229, 19), // "getAppMessageSignal"
QT_MOC_LITERAL(21, 249, 7), // "urlList"
QT_MOC_LITERAL(22, 257, 8), // "nameList"
QT_MOC_LITERAL(23, 266, 12), // "fullnameList"
QT_MOC_LITERAL(24, 279, 8), // "sizeList"
QT_MOC_LITERAL(25, 288, 7), // "allSize"
QT_MOC_LITERAL(26, 296, 11), // "dependState"
QT_MOC_LITERAL(27, 308, 20), // "slotFinishGetMessage"
QT_MOC_LITERAL(28, 329, 3) // "num"
},
"UpdateDbus\0copyFinish\0\0appName\0"
"transferAptProgress\0status\0aptPercent\0"
"errormsg\0sendImportant\0sendAppMessageSignal\0"
"AppAllMsg\0msg\0sendFinishGetMsgSignal\0"
"size\0sendUpdateSize\0getAptSignal\0arg\0"
"map\0slotCopyFinished\0getInameAndCnameList\0"
"getAppMessageSignal\0urlList\0nameList\0"
"fullnameList\0sizeList\0allSize\0dependState\0"
"slotFinishGetMessage\0num"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_UpdateDbus[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
11, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
6, // signalCount
// signals: name, argc, parameters, tag, flags
1, 1, 69, 2, 0x06 /* Public */,
4, 4, 72, 2, 0x06 /* Public */,
8, 0, 81, 2, 0x06 /* Public */,
9, 1, 82, 2, 0x06 /* Public */,
12, 1, 85, 2, 0x06 /* Public */,
14, 1, 88, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
15, 2, 91, 2, 0x0a /* Public */,
18, 1, 96, 2, 0x0a /* Public */,
19, 1, 99, 2, 0x0a /* Public */,
20, 7, 102, 2, 0x0a /* Public */,
27, 1, 117, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void, QMetaType::QString, QMetaType::QString, QMetaType::Float, QMetaType::QString, 5, 3, 6, 7,
QMetaType::Void,
QMetaType::Void, 0x80000000 | 10, 11,
QMetaType::Void, QMetaType::Int, 13,
QMetaType::Void, QMetaType::Long, 13,
// slots: parameters
QMetaType::Void, QMetaType::QString, QMetaType::QVariantMap, 16, 17,
QMetaType::Void, QMetaType::QString, 3,
QMetaType::Void, QMetaType::QString, 16,
QMetaType::Void, QMetaType::QVariantMap, QMetaType::QStringList, QMetaType::QStringList, QMetaType::QStringList, QMetaType::QStringList, QMetaType::QString, QMetaType::Bool, 17, 21, 22, 23, 24, 25, 26,
QMetaType::Void, QMetaType::QString, 28,
0 // eod
};
void UpdateDbus::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<UpdateDbus *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->copyFinish((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 1: _t->transferAptProgress((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2])),(*reinterpret_cast< float(*)>(_a[3])),(*reinterpret_cast< QString(*)>(_a[4]))); break;
case 2: _t->sendImportant(); break;
case 3: _t->sendAppMessageSignal((*reinterpret_cast< AppAllMsg(*)>(_a[1]))); break;
case 4: _t->sendFinishGetMsgSignal((*reinterpret_cast< int(*)>(_a[1]))); break;
case 5: _t->sendUpdateSize((*reinterpret_cast< long(*)>(_a[1]))); break;
case 6: _t->getAptSignal((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QMap<QString,QVariant>(*)>(_a[2]))); break;
case 7: _t->slotCopyFinished((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 8: _t->getInameAndCnameList((*reinterpret_cast< QString(*)>(_a[1]))); break;
case 9: _t->getAppMessageSignal((*reinterpret_cast< QMap<QString,QVariant>(*)>(_a[1])),(*reinterpret_cast< QStringList(*)>(_a[2])),(*reinterpret_cast< QStringList(*)>(_a[3])),(*reinterpret_cast< QStringList(*)>(_a[4])),(*reinterpret_cast< QStringList(*)>(_a[5])),(*reinterpret_cast< QString(*)>(_a[6])),(*reinterpret_cast< bool(*)>(_a[7]))); break;
case 10: _t->slotFinishGetMessage((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
switch (_id) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 3:
switch (*reinterpret_cast<int*>(_a[1])) {
default: *reinterpret_cast<int*>(_a[0]) = -1; break;
case 0:
*reinterpret_cast<int*>(_a[0]) = qRegisterMetaType< AppAllMsg >(); break;
}
break;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (UpdateDbus::*)(QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&UpdateDbus::copyFinish)) {
*result = 0;
return;
}
}
{
using _t = void (UpdateDbus::*)(QString , QString , float , QString );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&UpdateDbus::transferAptProgress)) {
*result = 1;
return;
}
}
{
using _t = void (UpdateDbus::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&UpdateDbus::sendImportant)) {
*result = 2;
return;
}
}
{
using _t = void (UpdateDbus::*)(AppAllMsg );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&UpdateDbus::sendAppMessageSignal)) {
*result = 3;
return;
}
}
{
using _t = void (UpdateDbus::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&UpdateDbus::sendFinishGetMsgSignal)) {
*result = 4;
return;
}
}
{
using _t = void (UpdateDbus::*)(long );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&UpdateDbus::sendUpdateSize)) {
*result = 5;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject UpdateDbus::staticMetaObject = { {
&QObject::staticMetaObject,
qt_meta_stringdata_UpdateDbus.data,
qt_meta_data_UpdateDbus,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *UpdateDbus::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *UpdateDbus::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_UpdateDbus.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int UpdateDbus::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 11)
qt_static_metacall(this, _c, _id, _a);
_id -= 11;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 11)
qt_static_metacall(this, _c, _id, _a);
_id -= 11;
}
return _id;
}
// SIGNAL 0
void UpdateDbus::copyFinish(QString _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void UpdateDbus::transferAptProgress(QString _t1, QString _t2, float _t3, QString _t4)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)), const_cast<void*>(reinterpret_cast<const void*>(&_t4)) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
// SIGNAL 2
void UpdateDbus::sendImportant()
{
QMetaObject::activate(this, &staticMetaObject, 2, nullptr);
}
// SIGNAL 3
void UpdateDbus::sendAppMessageSignal(AppAllMsg _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 3, _a);
}
// SIGNAL 4
void UpdateDbus::sendFinishGetMsgSignal(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 4, _a);
}
// SIGNAL 5
void UpdateDbus::sendUpdateSize(long _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 5, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,206 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'updatedeleteprompt.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/updatedeleteprompt.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'updatedeleteprompt.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_updatedeleteprompt_t {
QByteArrayData data[19];
char stringdata0[266];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_updatedeleteprompt_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_updatedeleteprompt_t qt_meta_stringdata_updatedeleteprompt = {
{
QT_MOC_LITERAL(0, 0, 18), // "updatedeleteprompt"
QT_MOC_LITERAL(1, 19, 29), // "updatedependsolvecancelsignal"
QT_MOC_LITERAL(2, 49, 0), // ""
QT_MOC_LITERAL(3, 50, 29), // "updatedependsolveacceptsignal"
QT_MOC_LITERAL(4, 80, 16), // "historyUpdateNow"
QT_MOC_LITERAL(5, 97, 4), // "str1"
QT_MOC_LITERAL(6, 102, 4), // "str2"
QT_MOC_LITERAL(7, 107, 9), // "slotClose"
QT_MOC_LITERAL(8, 117, 6), // "initUI"
QT_MOC_LITERAL(9, 124, 13), // "initGsettings"
QT_MOC_LITERAL(10, 138, 18), // "dynamicLoadingInit"
QT_MOC_LITERAL(11, 157, 14), // "dynamicLoading"
QT_MOC_LITERAL(12, 172, 1), // "i"
QT_MOC_LITERAL(13, 174, 11), // "defaultItem"
QT_MOC_LITERAL(14, 186, 25), // "translationVirtualPackage"
QT_MOC_LITERAL(15, 212, 3), // "str"
QT_MOC_LITERAL(16, 216, 26), // "changeListWidgetItemHeight"
QT_MOC_LITERAL(17, 243, 10), // "slotSearch"
QT_MOC_LITERAL(18, 254, 11) // "packageName"
},
"updatedeleteprompt\0updatedependsolvecancelsignal\0"
"\0updatedependsolveacceptsignal\0"
"historyUpdateNow\0str1\0str2\0slotClose\0"
"initUI\0initGsettings\0dynamicLoadingInit\0"
"dynamicLoading\0i\0defaultItem\0"
"translationVirtualPackage\0str\0"
"changeListWidgetItemHeight\0slotSearch\0"
"packageName"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_updatedeleteprompt[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
12, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 74, 2, 0x06 /* Public */,
3, 0, 75, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 2, 76, 2, 0x0a /* Public */,
7, 0, 81, 2, 0x0a /* Public */,
8, 0, 82, 2, 0x08 /* Private */,
9, 0, 83, 2, 0x08 /* Private */,
10, 0, 84, 2, 0x08 /* Private */,
11, 1, 85, 2, 0x08 /* Private */,
13, 0, 88, 2, 0x08 /* Private */,
14, 1, 89, 2, 0x08 /* Private */,
16, 0, 92, 2, 0x08 /* Private */,
17, 1, 93, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
// slots: parameters
QMetaType::Void, QMetaType::QString, QMetaType::QString, 5, 6,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Int, 12,
QMetaType::Void,
QMetaType::QString, QMetaType::QString, 15,
QMetaType::Void,
QMetaType::Void, QMetaType::QString, 18,
0 // eod
};
void updatedeleteprompt::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<updatedeleteprompt *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->updatedependsolvecancelsignal(); break;
case 1: _t->updatedependsolveacceptsignal(); break;
case 2: _t->historyUpdateNow((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 3: _t->slotClose(); break;
case 4: _t->initUI(); break;
case 5: _t->initGsettings(); break;
case 6: _t->dynamicLoadingInit(); break;
case 7: _t->dynamicLoading((*reinterpret_cast< int(*)>(_a[1]))); break;
case 8: _t->defaultItem(); break;
case 9: { QString _r = _t->translationVirtualPackage((*reinterpret_cast< QString(*)>(_a[1])));
if (_a[0]) *reinterpret_cast< QString*>(_a[0]) = std::move(_r); } break;
case 10: _t->changeListWidgetItemHeight(); break;
case 11: _t->slotSearch((*reinterpret_cast< QString(*)>(_a[1]))); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (updatedeleteprompt::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&updatedeleteprompt::updatedependsolvecancelsignal)) {
*result = 0;
return;
}
}
{
using _t = void (updatedeleteprompt::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&updatedeleteprompt::updatedependsolveacceptsignal)) {
*result = 1;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject updatedeleteprompt::staticMetaObject = { {
&QDialog::staticMetaObject,
qt_meta_stringdata_updatedeleteprompt.data,
qt_meta_data_updatedeleteprompt,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *updatedeleteprompt::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *updatedeleteprompt::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_updatedeleteprompt.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int updatedeleteprompt::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 12)
qt_static_metacall(this, _c, _id, _a);
_id -= 12;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 12)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 12;
}
return _id;
}
// SIGNAL 0
void updatedeleteprompt::updatedependsolvecancelsignal()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
// SIGNAL 1
void updatedeleteprompt::updatedependsolveacceptsignal()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,94 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'updatelog.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/updatelog.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'updatelog.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_UpdateLog_t {
QByteArrayData data[1];
char stringdata0[10];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_UpdateLog_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_UpdateLog_t qt_meta_stringdata_UpdateLog = {
{
QT_MOC_LITERAL(0, 0, 9) // "UpdateLog"
},
"UpdateLog"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_UpdateLog[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void UpdateLog::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject UpdateLog::staticMetaObject = { {
&QDialog::staticMetaObject,
qt_meta_stringdata_UpdateLog.data,
qt_meta_data_UpdateLog,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *UpdateLog::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *UpdateLog::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_UpdateLog.stringdata0))
return static_cast<void*>(this);
return QDialog::qt_metacast(_clname);
}
int UpdateLog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDialog::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,177 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'updatesource.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/updatesource.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'updatesource.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_UpdateSource_t {
QByteArrayData data[6];
char stringdata0[77];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_UpdateSource_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_UpdateSource_t qt_meta_stringdata_UpdateSource = {
{
QT_MOC_LITERAL(0, 0, 12), // "UpdateSource"
QT_MOC_LITERAL(1, 13, 19), // "getReplyFalseSignal"
QT_MOC_LITERAL(2, 33, 0), // ""
QT_MOC_LITERAL(3, 34, 17), // "startDbusFinished"
QT_MOC_LITERAL(4, 52, 14), // "sigReconnTimes"
QT_MOC_LITERAL(5, 67, 9) // "startDbus"
},
"UpdateSource\0getReplyFalseSignal\0\0"
"startDbusFinished\0sigReconnTimes\0"
"startDbus"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_UpdateSource[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
4, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
3, // signalCount
// signals: name, argc, parameters, tag, flags
1, 0, 34, 2, 0x06 /* Public */,
3, 0, 35, 2, 0x06 /* Public */,
4, 1, 36, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
5, 0, 39, 2, 0x0a /* Public */,
// signals: parameters
QMetaType::Void,
QMetaType::Void,
QMetaType::Void, QMetaType::Int, 2,
// slots: parameters
QMetaType::Void,
0 // eod
};
void UpdateSource::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<UpdateSource *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->getReplyFalseSignal(); break;
case 1: _t->startDbusFinished(); break;
case 2: _t->sigReconnTimes((*reinterpret_cast< int(*)>(_a[1]))); break;
case 3: _t->startDbus(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
{
using _t = void (UpdateSource::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&UpdateSource::getReplyFalseSignal)) {
*result = 0;
return;
}
}
{
using _t = void (UpdateSource::*)();
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&UpdateSource::startDbusFinished)) {
*result = 1;
return;
}
}
{
using _t = void (UpdateSource::*)(int );
if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&UpdateSource::sigReconnTimes)) {
*result = 2;
return;
}
}
}
}
QT_INIT_METAOBJECT const QMetaObject UpdateSource::staticMetaObject = { {
&QObject::staticMetaObject,
qt_meta_stringdata_UpdateSource.data,
qt_meta_data_UpdateSource,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *UpdateSource::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *UpdateSource::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_UpdateSource.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int UpdateSource::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 4)
qt_static_metacall(this, _c, _id, _a);
_id -= 4;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 4)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 4;
}
return _id;
}
// SIGNAL 0
void UpdateSource::getReplyFalseSignal()
{
QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
}
// SIGNAL 1
void UpdateSource::startDbusFinished()
{
QMetaObject::activate(this, &staticMetaObject, 1, nullptr);
}
// SIGNAL 2
void UpdateSource::sigReconnTimes(int _t1)
{
void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
QMetaObject::activate(this, &staticMetaObject, 2, _a);
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,118 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'upgrade.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "upgrade.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#include <QtCore/qplugin.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'upgrade.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_Upgrade_t {
QByteArrayData data[1];
char stringdata0[8];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_Upgrade_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_Upgrade_t qt_meta_stringdata_Upgrade = {
{
QT_MOC_LITERAL(0, 0, 7) // "Upgrade"
},
"Upgrade"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Upgrade[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void Upgrade::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject Upgrade::staticMetaObject = { {
&QObject::staticMetaObject,
qt_meta_stringdata_Upgrade.data,
qt_meta_data_Upgrade,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *Upgrade::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Upgrade::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_Upgrade.stringdata0))
return static_cast<void*>(this);
if (!strcmp(_clname, "CommonInterface"))
return static_cast< CommonInterface*>(this);
if (!strcmp(_clname, "org.ukcc.CommonInterface"))
return static_cast< CommonInterface*>(this);
return QObject::qt_metacast(_clname);
}
int Upgrade::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
return _id;
}
QT_PLUGIN_METADATA_SECTION
static constexpr unsigned char qt_pluginMetaData[] = {
'Q', 'T', 'M', 'E', 'T', 'A', 'D', 'A', 'T', 'A', ' ', '!',
// metadata version, Qt version, architectural requirements
0, QT_VERSION_MAJOR, QT_VERSION_MINOR, qPluginArchRequirements(),
0xbf,
// "IID"
0x02, 0x78, 0x18, 'o', 'r', 'g', '.', 'u',
'k', 'c', 'c', '.', 'C', 'o', 'm', 'm',
'o', 'n', 'I', 'n', 't', 'e', 'r', 'f',
'a', 'c', 'e',
// "className"
0x03, 0x67, 'U', 'p', 'g', 'r', 'a', 'd',
'e',
0xff,
};
QT_MOC_EXPORT_PLUGIN(Upgrade, Upgrade)
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,120 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'upgrademain.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/upgrademain.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'upgrademain.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_UpgradeMain_t {
QByteArrayData data[5];
char stringdata0[44];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_UpgradeMain_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_UpgradeMain_t qt_meta_stringdata_UpgradeMain = {
{
QT_MOC_LITERAL(0, 0, 11), // "UpgradeMain"
QT_MOC_LITERAL(1, 12, 13), // "keyPressEvent"
QT_MOC_LITERAL(2, 26, 0), // ""
QT_MOC_LITERAL(3, 27, 10), // "QKeyEvent*"
QT_MOC_LITERAL(4, 38, 5) // "event"
},
"UpgradeMain\0keyPressEvent\0\0QKeyEvent*\0"
"event"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_UpgradeMain[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
1, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 1, 19, 2, 0x0a /* Public */,
// slots: parameters
QMetaType::Void, 0x80000000 | 3, 4,
0 // eod
};
void UpgradeMain::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
auto *_t = static_cast<UpgradeMain *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->keyPressEvent((*reinterpret_cast< QKeyEvent*(*)>(_a[1]))); break;
default: ;
}
}
}
QT_INIT_METAOBJECT const QMetaObject UpgradeMain::staticMetaObject = { {
&QMainWindow::staticMetaObject,
qt_meta_stringdata_UpgradeMain.data,
qt_meta_data_UpgradeMain,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *UpgradeMain::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *UpgradeMain::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_UpgradeMain.stringdata0))
return static_cast<void*>(this);
return QMainWindow::qt_metacast(_clname);
}
int UpgradeMain::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 1)
qt_static_metacall(this, _c, _id, _a);
_id -= 1;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 1)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 1;
}
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,94 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'widgetstyle.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/widgetstyle.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'widgetstyle.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_WidgetStyle_t {
QByteArrayData data[1];
char stringdata0[12];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_WidgetStyle_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_WidgetStyle_t qt_meta_stringdata_WidgetStyle = {
{
QT_MOC_LITERAL(0, 0, 11) // "WidgetStyle"
},
"WidgetStyle"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_WidgetStyle[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void WidgetStyle::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject WidgetStyle::staticMetaObject = { {
&QWidget::staticMetaObject,
qt_meta_stringdata_WidgetStyle.data,
qt_meta_data_WidgetStyle,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *WidgetStyle::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *WidgetStyle::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_WidgetStyle.stringdata0))
return static_cast<void*>(this);
return QWidget::qt_metacast(_clname);
}
int WidgetStyle::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QWidget::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

View File

@ -1,94 +0,0 @@
/****************************************************************************
** Meta object code from reading C++ file 'xatom-helper.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.12.8)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "src/xatom-helper.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'xatom-helper.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.12.8. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
QT_WARNING_PUSH
QT_WARNING_DISABLE_DEPRECATED
struct qt_meta_stringdata_XAtomHelper_t {
QByteArrayData data[1];
char stringdata0[12];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_XAtomHelper_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_XAtomHelper_t qt_meta_stringdata_XAtomHelper = {
{
QT_MOC_LITERAL(0, 0, 11) // "XAtomHelper"
},
"XAtomHelper"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_XAtomHelper[] = {
// content:
8, // revision
0, // classname
0, 0, // classinfo
0, 0, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
0 // eod
};
void XAtomHelper::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
Q_UNUSED(_o);
Q_UNUSED(_id);
Q_UNUSED(_c);
Q_UNUSED(_a);
}
QT_INIT_METAOBJECT const QMetaObject XAtomHelper::staticMetaObject = { {
&QObject::staticMetaObject,
qt_meta_stringdata_XAtomHelper.data,
qt_meta_data_XAtomHelper,
qt_static_metacall,
nullptr,
nullptr
} };
const QMetaObject *XAtomHelper::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *XAtomHelper::qt_metacast(const char *_clname)
{
if (!_clname) return nullptr;
if (!strcmp(_clname, qt_meta_stringdata_XAtomHelper.stringdata0))
return static_cast<void*>(this);
return QObject::qt_metacast(_clname);
}
int XAtomHelper::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QObject::qt_metacall(_c, _id, _a);
return _id;
}
QT_WARNING_POP
QT_END_MOC_NAMESPACE

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -733,7 +733,7 @@ void TabWid::allComponents()
updateSettingLab = new TitleLabel();
// updateSettingLab->setText(tr("更新设置"));
//~ contents_path /upgrade/Update Settings
//~ contents_path /Upgrade/Update Settings
updateSettingLab->setText(tr("Update Settings"));
updateSettingLab->setFixedHeight(27);
updateSettingWidget = new QWidget(this);
@ -745,7 +745,7 @@ void TabWid::allComponents()
isAutoCheckLayout = new QHBoxLayout();
isAutoCheckedLab = new QLabel();
// isAutoCheckedLab->setText(tr("允许通知可更新的应用"));
//~ contents_path /upgrade/Allowed to renewable notice
//~ contents_path /Upgrade/Allowed to renewable notice
isAutoCheckedLab->setText(tr("Allowed to renewable notice"));
isAutoCheckSBtn = new SwitchButton();
isAutoCheckWidget->setLayout(isAutoCheckLayout);
@ -813,7 +813,7 @@ void TabWid::allComponents()
isAutoUpgradeWidget->setFrameShape(QFrame::Box);
isAutoUpgradeLayout = new QVBoxLayout();
isAutoUpgradeLab = new QLabel();
//~ contents_path /upgrade/Automatically download and install updates
//~ contents_path /Upgrade/Automatically download and install updates
isAutoUpgradeLab->setText(tr("Automatically download and install updates"));
autoUpgradeLab = new QLabel();
autoUpgradeLab->setText(tr("After it is turned on, the system will automatically download and install updates when there is an available network and available backup and restore partitions."));

Binary file not shown.

View File

@ -201,11 +201,11 @@
<location filename="../src/tabwidget.cpp" line="141"/>
<location filename="../src/tabwidget.cpp" line="170"/>
<location filename="../src/tabwidget.cpp" line="594"/>
<location filename="../src/tabwidget.cpp" line="931"/>
<location filename="../src/tabwidget.cpp" line="972"/>
<location filename="../src/tabwidget.cpp" line="1095"/>
<location filename="../src/tabwidget.cpp" line="1265"/>
<location filename="../src/tabwidget.cpp" line="1350"/>
<location filename="../src/tabwidget.cpp" line="935"/>
<location filename="../src/tabwidget.cpp" line="976"/>
<location filename="../src/tabwidget.cpp" line="1099"/>
<location filename="../src/tabwidget.cpp" line="1269"/>
<location filename="../src/tabwidget.cpp" line="1354"/>
<source>Check Update</source>
<translation type="unfinished"></translation>
</message>
@ -218,41 +218,41 @@
<location filename="../src/tabwidget.cpp" line="129"/>
<location filename="../src/tabwidget.cpp" line="223"/>
<location filename="../src/tabwidget.cpp" line="464"/>
<location filename="../src/tabwidget.cpp" line="955"/>
<location filename="../src/tabwidget.cpp" line="1114"/>
<location filename="../src/tabwidget.cpp" line="1254"/>
<location filename="../src/tabwidget.cpp" line="1316"/>
<location filename="../src/tabwidget.cpp" line="1381"/>
<location filename="../src/tabwidget.cpp" line="1394"/>
<location filename="../src/tabwidget.cpp" line="959"/>
<location filename="../src/tabwidget.cpp" line="1118"/>
<location filename="../src/tabwidget.cpp" line="1258"/>
<location filename="../src/tabwidget.cpp" line="1320"/>
<location filename="../src/tabwidget.cpp" line="1385"/>
<location filename="../src/tabwidget.cpp" line="1398"/>
<source>UpdateAll</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="157"/>
<location filename="../src/tabwidget.cpp" line="933"/>
<location filename="../src/tabwidget.cpp" line="974"/>
<location filename="../src/tabwidget.cpp" line="1267"/>
<location filename="../src/tabwidget.cpp" line="1351"/>
<location filename="../src/tabwidget.cpp" line="937"/>
<location filename="../src/tabwidget.cpp" line="978"/>
<location filename="../src/tabwidget.cpp" line="1271"/>
<location filename="../src/tabwidget.cpp" line="1355"/>
<source>Your system is the latest!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="158"/>
<location filename="../src/tabwidget.cpp" line="936"/>
<location filename="../src/tabwidget.cpp" line="977"/>
<location filename="../src/tabwidget.cpp" line="1007"/>
<location filename="../src/tabwidget.cpp" line="1295"/>
<location filename="../src/tabwidget.cpp" line="1361"/>
<location filename="../src/tabwidget.cpp" line="940"/>
<location filename="../src/tabwidget.cpp" line="981"/>
<location filename="../src/tabwidget.cpp" line="1011"/>
<location filename="../src/tabwidget.cpp" line="1299"/>
<location filename="../src/tabwidget.cpp" line="1365"/>
<source>No Information!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="168"/>
<location filename="../src/tabwidget.cpp" line="946"/>
<location filename="../src/tabwidget.cpp" line="987"/>
<location filename="../src/tabwidget.cpp" line="1017"/>
<location filename="../src/tabwidget.cpp" line="1305"/>
<location filename="../src/tabwidget.cpp" line="1371"/>
<location filename="../src/tabwidget.cpp" line="950"/>
<location filename="../src/tabwidget.cpp" line="991"/>
<location filename="../src/tabwidget.cpp" line="1021"/>
<location filename="../src/tabwidget.cpp" line="1309"/>
<location filename="../src/tabwidget.cpp" line="1375"/>
<source>Last refresh:</source>
<translation type="unfinished"></translation>
</message>
@ -275,13 +275,13 @@
<message>
<location filename="../src/tabwidget.cpp" line="210"/>
<location filename="../src/tabwidget.cpp" line="455"/>
<location filename="../src/tabwidget.cpp" line="1390"/>
<location filename="../src/tabwidget.cpp" line="1394"/>
<source>Being updated...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="222"/>
<location filename="../src/tabwidget.cpp" line="958"/>
<location filename="../src/tabwidget.cpp" line="962"/>
<source>Updatable app detected on your system!</source>
<translation type="unfinished"></translation>
</message>
@ -307,7 +307,7 @@
</message>
<message>
<location filename="../src/tabwidget.cpp" line="253"/>
<location filename="../src/tabwidget.cpp" line="1423"/>
<location filename="../src/tabwidget.cpp" line="1427"/>
<source>Start backup,getting progress</source>
<translation type="unfinished"></translation>
</message>
@ -319,8 +319,8 @@
<message>
<location filename="../src/tabwidget.cpp" line="272"/>
<location filename="../src/tabwidget.cpp" line="276"/>
<location filename="../src/tabwidget.cpp" line="1133"/>
<location filename="../src/tabwidget.cpp" line="1176"/>
<location filename="../src/tabwidget.cpp" line="1137"/>
<location filename="../src/tabwidget.cpp" line="1180"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
@ -336,7 +336,7 @@
</message>
<message>
<location filename="../src/tabwidget.cpp" line="317"/>
<location filename="../src/tabwidget.cpp" line="1129"/>
<location filename="../src/tabwidget.cpp" line="1133"/>
<source>Prompt information</source>
<translation type="unfinished"></translation>
</message>
@ -406,167 +406,171 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="666"/>
<location filename="../src/tabwidget.cpp" line="667"/>
<source>View history</source>
<translation type="unfinished"></translation>
<extra-contents_path>/upgrade/View history</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="714"/>
<location filename="../src/tabwidget.cpp" line="1088"/>
<location filename="../src/tabwidget.cpp" line="715"/>
<location filename="../src/tabwidget.cpp" line="1092"/>
<source>details</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="735"/>
<location filename="../src/tabwidget.cpp" line="737"/>
<source>Update Settings</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Upgrade/Update Settings</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="746"/>
<location filename="../src/tabwidget.cpp" line="749"/>
<source>Allowed to renewable notice</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Upgrade/Allowed to renewable notice</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="756"/>
<location filename="../src/tabwidget.cpp" line="759"/>
<source>Backup current system before updates all</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="772"/>
<location filename="../src/tabwidget.cpp" line="775"/>
<source>Download Limit(Kb/s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="777"/>
<location filename="../src/tabwidget.cpp" line="780"/>
<source>It will be avaliable in the next download.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="813"/>
<location filename="../src/tabwidget.cpp" line="817"/>
<source>Automatically download and install updates</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Upgrade/Automatically download and install updates</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="815"/>
<location filename="../src/tabwidget.cpp" line="819"/>
<source>After it is turned on, the system will automatically download and install updates when there is an available network and available backup and restore partitions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="891"/>
<location filename="../src/tabwidget.cpp" line="895"/>
<source>Ready to install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1018"/>
<location filename="../src/tabwidget.cpp" line="1022"/>
<source>Last Checked:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1063"/>
<location filename="../src/tabwidget.cpp" line="1067"/>
<source>Dependency conflict exists in this update,need to be completely repaired!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1065"/>
<location filename="../src/tabwidget.cpp" line="1069"/>
<source>packages are going to be removed,Please confirm whether to accept!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1071"/>
<location filename="../src/tabwidget.cpp" line="1075"/>
<source>trying to reconnect </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1071"/>
<location filename="../src/tabwidget.cpp" line="1075"/>
<source> times</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1081"/>
<location filename="../src/tabwidget.cpp" line="1085"/>
<source>back</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1109"/>
<location filename="../src/tabwidget.cpp" line="1113"/>
<source>Updating the software source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1118"/>
<location filename="../src/tabwidget.cpp" line="1122"/>
<source>The battery is below 50% and the update cannot be downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1121"/>
<location filename="../src/tabwidget.cpp" line="1125"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1128"/>
<location filename="../src/tabwidget.cpp" line="1132"/>
<source>Please back up the system before all updates to avoid unnecessary losses</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1131"/>
<location filename="../src/tabwidget.cpp" line="1135"/>
<source>Only Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1132"/>
<location filename="../src/tabwidget.cpp" line="1136"/>
<source>Back And Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1256"/>
<location filename="../src/tabwidget.cpp" line="1281"/>
<location filename="../src/tabwidget.cpp" line="1332"/>
<location filename="../src/tabwidget.cpp" line="1382"/>
<location filename="../src/tabwidget.cpp" line="1260"/>
<location filename="../src/tabwidget.cpp" line="1285"/>
<location filename="../src/tabwidget.cpp" line="1336"/>
<location filename="../src/tabwidget.cpp" line="1386"/>
<source>update has been canceled!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1285"/>
<location filename="../src/tabwidget.cpp" line="1336"/>
<location filename="../src/tabwidget.cpp" line="1289"/>
<location filename="../src/tabwidget.cpp" line="1340"/>
<source>Part of the update failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1318"/>
<location filename="../src/tabwidget.cpp" line="1322"/>
<source>Part of the update success!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1405"/>
<location filename="../src/tabwidget.cpp" line="1409"/>
<source>An important update is in progress, please wait.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1430"/>
<location filename="../src/tabwidget.cpp" line="1434"/>
<source>Failed to write configuration file, this update will not back up the system!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1434"/>
<location filename="../src/tabwidget.cpp" line="1438"/>
<source>Insufficient backup space, this update will not backup your system!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1438"/>
<location filename="../src/tabwidget.cpp" line="1442"/>
<source>Kylin backup restore tool could not find the UUID, this update will not backup the system!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1441"/>
<location filename="../src/tabwidget.cpp" line="1445"/>
<source>The backup restore partition is abnormal. You may not have a backup restore partition.For more details,see /var/log/backup.log</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1449"/>
<location filename="../src/tabwidget.cpp" line="1453"/>
<source>Calculating Capacity...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1538"/>
<location filename="../src/tabwidget.cpp" line="1542"/>
<source>Calculating</source>
<translation type="unfinished"></translation>
</message>
@ -611,25 +615,25 @@
<location filename="../upgrade.cpp" line="69"/>
<source>View history</source>
<translation type="unfinished"></translation>
<extra-contents_path>/upgrade/View history</extra-contents_path>
<extra-contents_path>/Upgrade/View history</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="71"/>
<source>Update Settings</source>
<translation type="unfinished"></translation>
<extra-contents_path>/upgrade/Update Settings</extra-contents_path>
<extra-contents_path>/Upgrade/Update Settings</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="73"/>
<source>Allowed to renewable notice</source>
<translation type="unfinished"></translation>
<extra-contents_path>/upgrade/Allowed to renewable notice</extra-contents_path>
<extra-contents_path>/Upgrade/Allowed to renewable notice</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="75"/>
<source>Automatically download and install updates</source>
<translation type="unfinished"></translation>
<extra-contents_path>/upgrade/Automatically download and install updates</extra-contents_path>
<extra-contents_path>/Upgrade/Automatically download and install updates</extra-contents_path>
</message>
</context>
<context>

View File

@ -201,11 +201,11 @@
<location filename="../src/tabwidget.cpp" line="141"/>
<location filename="../src/tabwidget.cpp" line="170"/>
<location filename="../src/tabwidget.cpp" line="594"/>
<location filename="../src/tabwidget.cpp" line="931"/>
<location filename="../src/tabwidget.cpp" line="972"/>
<location filename="../src/tabwidget.cpp" line="1095"/>
<location filename="../src/tabwidget.cpp" line="1265"/>
<location filename="../src/tabwidget.cpp" line="1350"/>
<location filename="../src/tabwidget.cpp" line="935"/>
<location filename="../src/tabwidget.cpp" line="976"/>
<location filename="../src/tabwidget.cpp" line="1099"/>
<location filename="../src/tabwidget.cpp" line="1269"/>
<location filename="../src/tabwidget.cpp" line="1354"/>
<source>Check Update</source>
<translation></translation>
</message>
@ -218,41 +218,41 @@
<location filename="../src/tabwidget.cpp" line="129"/>
<location filename="../src/tabwidget.cpp" line="223"/>
<location filename="../src/tabwidget.cpp" line="464"/>
<location filename="../src/tabwidget.cpp" line="955"/>
<location filename="../src/tabwidget.cpp" line="1114"/>
<location filename="../src/tabwidget.cpp" line="1254"/>
<location filename="../src/tabwidget.cpp" line="1316"/>
<location filename="../src/tabwidget.cpp" line="1381"/>
<location filename="../src/tabwidget.cpp" line="1394"/>
<location filename="../src/tabwidget.cpp" line="959"/>
<location filename="../src/tabwidget.cpp" line="1118"/>
<location filename="../src/tabwidget.cpp" line="1258"/>
<location filename="../src/tabwidget.cpp" line="1320"/>
<location filename="../src/tabwidget.cpp" line="1385"/>
<location filename="../src/tabwidget.cpp" line="1398"/>
<source>UpdateAll</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="157"/>
<location filename="../src/tabwidget.cpp" line="933"/>
<location filename="../src/tabwidget.cpp" line="974"/>
<location filename="../src/tabwidget.cpp" line="1267"/>
<location filename="../src/tabwidget.cpp" line="1351"/>
<location filename="../src/tabwidget.cpp" line="937"/>
<location filename="../src/tabwidget.cpp" line="978"/>
<location filename="../src/tabwidget.cpp" line="1271"/>
<location filename="../src/tabwidget.cpp" line="1355"/>
<source>Your system is the latest!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="158"/>
<location filename="../src/tabwidget.cpp" line="936"/>
<location filename="../src/tabwidget.cpp" line="977"/>
<location filename="../src/tabwidget.cpp" line="1007"/>
<location filename="../src/tabwidget.cpp" line="1295"/>
<location filename="../src/tabwidget.cpp" line="1361"/>
<location filename="../src/tabwidget.cpp" line="940"/>
<location filename="../src/tabwidget.cpp" line="981"/>
<location filename="../src/tabwidget.cpp" line="1011"/>
<location filename="../src/tabwidget.cpp" line="1299"/>
<location filename="../src/tabwidget.cpp" line="1365"/>
<source>No Information!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="168"/>
<location filename="../src/tabwidget.cpp" line="946"/>
<location filename="../src/tabwidget.cpp" line="987"/>
<location filename="../src/tabwidget.cpp" line="1017"/>
<location filename="../src/tabwidget.cpp" line="1305"/>
<location filename="../src/tabwidget.cpp" line="1371"/>
<location filename="../src/tabwidget.cpp" line="950"/>
<location filename="../src/tabwidget.cpp" line="991"/>
<location filename="../src/tabwidget.cpp" line="1021"/>
<location filename="../src/tabwidget.cpp" line="1309"/>
<location filename="../src/tabwidget.cpp" line="1375"/>
<source>Last refresh:</source>
<translation></translation>
</message>
@ -275,13 +275,13 @@
<message>
<location filename="../src/tabwidget.cpp" line="210"/>
<location filename="../src/tabwidget.cpp" line="455"/>
<location filename="../src/tabwidget.cpp" line="1390"/>
<location filename="../src/tabwidget.cpp" line="1394"/>
<source>Being updated...</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="222"/>
<location filename="../src/tabwidget.cpp" line="958"/>
<location filename="../src/tabwidget.cpp" line="962"/>
<source>Updatable app detected on your system!</source>
<translation></translation>
</message>
@ -307,7 +307,7 @@
</message>
<message>
<location filename="../src/tabwidget.cpp" line="253"/>
<location filename="../src/tabwidget.cpp" line="1423"/>
<location filename="../src/tabwidget.cpp" line="1427"/>
<source>Start backup,getting progress</source>
<translation></translation>
</message>
@ -319,8 +319,8 @@
<message>
<location filename="../src/tabwidget.cpp" line="272"/>
<location filename="../src/tabwidget.cpp" line="276"/>
<location filename="../src/tabwidget.cpp" line="1133"/>
<location filename="../src/tabwidget.cpp" line="1176"/>
<location filename="../src/tabwidget.cpp" line="1137"/>
<location filename="../src/tabwidget.cpp" line="1180"/>
<source>Cancel</source>
<translation></translation>
</message>
@ -336,7 +336,7 @@
</message>
<message>
<location filename="../src/tabwidget.cpp" line="317"/>
<location filename="../src/tabwidget.cpp" line="1129"/>
<location filename="../src/tabwidget.cpp" line="1133"/>
<source>Prompt information</source>
<translation></translation>
</message>
@ -406,167 +406,171 @@
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="666"/>
<location filename="../src/tabwidget.cpp" line="667"/>
<source>View history</source>
<translation></translation>
<extra-contents_path>/upgrade/View history</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="714"/>
<location filename="../src/tabwidget.cpp" line="1088"/>
<location filename="../src/tabwidget.cpp" line="715"/>
<location filename="../src/tabwidget.cpp" line="1092"/>
<source>details</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="735"/>
<location filename="../src/tabwidget.cpp" line="737"/>
<source>Update Settings</source>
<translation></translation>
<extra-contents_path>/Upgrade/Update Settings</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="746"/>
<location filename="../src/tabwidget.cpp" line="749"/>
<source>Allowed to renewable notice</source>
<translation></translation>
<extra-contents_path>/Upgrade/Allowed to renewable notice</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="756"/>
<location filename="../src/tabwidget.cpp" line="759"/>
<source>Backup current system before updates all</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="772"/>
<location filename="../src/tabwidget.cpp" line="775"/>
<source>Download Limit(Kb/s)</source>
<translation>(Kb/s)</translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="777"/>
<location filename="../src/tabwidget.cpp" line="780"/>
<source>It will be avaliable in the next download.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="813"/>
<location filename="../src/tabwidget.cpp" line="817"/>
<source>Automatically download and install updates</source>
<translation></translation>
<extra-contents_path>/Upgrade/Automatically download and install updates</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="815"/>
<location filename="../src/tabwidget.cpp" line="819"/>
<source>After it is turned on, the system will automatically download and install updates when there is an available network and available backup and restore partitions.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="891"/>
<location filename="../src/tabwidget.cpp" line="895"/>
<source>Ready to install</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1018"/>
<location filename="../src/tabwidget.cpp" line="1022"/>
<source>Last Checked:</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1063"/>
<location filename="../src/tabwidget.cpp" line="1067"/>
<source>Dependency conflict exists in this update,need to be completely repaired!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1065"/>
<location filename="../src/tabwidget.cpp" line="1069"/>
<source>packages are going to be removed,Please confirm whether to accept!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1071"/>
<location filename="../src/tabwidget.cpp" line="1075"/>
<source>trying to reconnect </source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1071"/>
<location filename="../src/tabwidget.cpp" line="1075"/>
<source> times</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1081"/>
<location filename="../src/tabwidget.cpp" line="1085"/>
<source>back</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1109"/>
<location filename="../src/tabwidget.cpp" line="1113"/>
<source>Updating the software source</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1118"/>
<location filename="../src/tabwidget.cpp" line="1122"/>
<source>The battery is below 50% and the update cannot be downloaded</source>
<translation> 50%</translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1121"/>
<location filename="../src/tabwidget.cpp" line="1125"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1128"/>
<location filename="../src/tabwidget.cpp" line="1132"/>
<source>Please back up the system before all updates to avoid unnecessary losses</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1131"/>
<location filename="../src/tabwidget.cpp" line="1135"/>
<source>Only Update</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1132"/>
<location filename="../src/tabwidget.cpp" line="1136"/>
<source>Back And Update</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1256"/>
<location filename="../src/tabwidget.cpp" line="1281"/>
<location filename="../src/tabwidget.cpp" line="1332"/>
<location filename="../src/tabwidget.cpp" line="1382"/>
<location filename="../src/tabwidget.cpp" line="1260"/>
<location filename="../src/tabwidget.cpp" line="1285"/>
<location filename="../src/tabwidget.cpp" line="1336"/>
<location filename="../src/tabwidget.cpp" line="1386"/>
<source>update has been canceled!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1285"/>
<location filename="../src/tabwidget.cpp" line="1336"/>
<location filename="../src/tabwidget.cpp" line="1289"/>
<location filename="../src/tabwidget.cpp" line="1340"/>
<source>Part of the update failed!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1318"/>
<location filename="../src/tabwidget.cpp" line="1322"/>
<source>Part of the update success!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1405"/>
<location filename="../src/tabwidget.cpp" line="1409"/>
<source>An important update is in progress, please wait.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1430"/>
<location filename="../src/tabwidget.cpp" line="1434"/>
<source>Failed to write configuration file, this update will not back up the system!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1434"/>
<location filename="../src/tabwidget.cpp" line="1438"/>
<source>Insufficient backup space, this update will not backup your system!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1438"/>
<location filename="../src/tabwidget.cpp" line="1442"/>
<source>Kylin backup restore tool could not find the UUID, this update will not backup the system!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1441"/>
<location filename="../src/tabwidget.cpp" line="1445"/>
<source>The backup restore partition is abnormal. You may not have a backup restore partition.For more details,see /var/log/backup.log</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1449"/>
<location filename="../src/tabwidget.cpp" line="1453"/>
<source>Calculating Capacity...</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1538"/>
<location filename="../src/tabwidget.cpp" line="1542"/>
<source>Calculating</source>
<translation></translation>
</message>
@ -611,25 +615,25 @@
<location filename="../upgrade.cpp" line="69"/>
<source>View history</source>
<translation></translation>
<extra-contents_path>/upgrade/View history</extra-contents_path>
<extra-contents_path>/Upgrade/View history</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="71"/>
<source>Update Settings</source>
<translation></translation>
<extra-contents_path>/upgrade/Update Settings</extra-contents_path>
<extra-contents_path>/Upgrade/Update Settings</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="73"/>
<source>Allowed to renewable notice</source>
<translation></translation>
<extra-contents_path>/upgrade/Allowed to renewable notice</extra-contents_path>
<extra-contents_path>/Upgrade/Allowed to renewable notice</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="75"/>
<source>Automatically download and install updates</source>
<translation></translation>
<extra-contents_path>/upgrade/Automatically download and install updates</extra-contents_path>
<extra-contents_path>/Upgrade/Automatically download and install updates</extra-contents_path>
</message>
</context>
<context>

View File

@ -201,11 +201,11 @@
<location filename="../src/tabwidget.cpp" line="141"/>
<location filename="../src/tabwidget.cpp" line="170"/>
<location filename="../src/tabwidget.cpp" line="594"/>
<location filename="../src/tabwidget.cpp" line="931"/>
<location filename="../src/tabwidget.cpp" line="972"/>
<location filename="../src/tabwidget.cpp" line="1095"/>
<location filename="../src/tabwidget.cpp" line="1265"/>
<location filename="../src/tabwidget.cpp" line="1350"/>
<location filename="../src/tabwidget.cpp" line="935"/>
<location filename="../src/tabwidget.cpp" line="976"/>
<location filename="../src/tabwidget.cpp" line="1099"/>
<location filename="../src/tabwidget.cpp" line="1269"/>
<location filename="../src/tabwidget.cpp" line="1354"/>
<source>Check Update</source>
<translation type="unfinished"></translation>
</message>
@ -218,41 +218,41 @@
<location filename="../src/tabwidget.cpp" line="129"/>
<location filename="../src/tabwidget.cpp" line="223"/>
<location filename="../src/tabwidget.cpp" line="464"/>
<location filename="../src/tabwidget.cpp" line="955"/>
<location filename="../src/tabwidget.cpp" line="1114"/>
<location filename="../src/tabwidget.cpp" line="1254"/>
<location filename="../src/tabwidget.cpp" line="1316"/>
<location filename="../src/tabwidget.cpp" line="1381"/>
<location filename="../src/tabwidget.cpp" line="1394"/>
<location filename="../src/tabwidget.cpp" line="959"/>
<location filename="../src/tabwidget.cpp" line="1118"/>
<location filename="../src/tabwidget.cpp" line="1258"/>
<location filename="../src/tabwidget.cpp" line="1320"/>
<location filename="../src/tabwidget.cpp" line="1385"/>
<location filename="../src/tabwidget.cpp" line="1398"/>
<source>UpdateAll</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="157"/>
<location filename="../src/tabwidget.cpp" line="933"/>
<location filename="../src/tabwidget.cpp" line="974"/>
<location filename="../src/tabwidget.cpp" line="1267"/>
<location filename="../src/tabwidget.cpp" line="1351"/>
<location filename="../src/tabwidget.cpp" line="937"/>
<location filename="../src/tabwidget.cpp" line="978"/>
<location filename="../src/tabwidget.cpp" line="1271"/>
<location filename="../src/tabwidget.cpp" line="1355"/>
<source>Your system is the latest!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="158"/>
<location filename="../src/tabwidget.cpp" line="936"/>
<location filename="../src/tabwidget.cpp" line="977"/>
<location filename="../src/tabwidget.cpp" line="1007"/>
<location filename="../src/tabwidget.cpp" line="1295"/>
<location filename="../src/tabwidget.cpp" line="1361"/>
<location filename="../src/tabwidget.cpp" line="940"/>
<location filename="../src/tabwidget.cpp" line="981"/>
<location filename="../src/tabwidget.cpp" line="1011"/>
<location filename="../src/tabwidget.cpp" line="1299"/>
<location filename="../src/tabwidget.cpp" line="1365"/>
<source>No Information!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="168"/>
<location filename="../src/tabwidget.cpp" line="946"/>
<location filename="../src/tabwidget.cpp" line="987"/>
<location filename="../src/tabwidget.cpp" line="1017"/>
<location filename="../src/tabwidget.cpp" line="1305"/>
<location filename="../src/tabwidget.cpp" line="1371"/>
<location filename="../src/tabwidget.cpp" line="950"/>
<location filename="../src/tabwidget.cpp" line="991"/>
<location filename="../src/tabwidget.cpp" line="1021"/>
<location filename="../src/tabwidget.cpp" line="1309"/>
<location filename="../src/tabwidget.cpp" line="1375"/>
<source>Last refresh:</source>
<translation type="unfinished"></translation>
</message>
@ -275,13 +275,13 @@
<message>
<location filename="../src/tabwidget.cpp" line="210"/>
<location filename="../src/tabwidget.cpp" line="455"/>
<location filename="../src/tabwidget.cpp" line="1390"/>
<location filename="../src/tabwidget.cpp" line="1394"/>
<source>Being updated...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="222"/>
<location filename="../src/tabwidget.cpp" line="958"/>
<location filename="../src/tabwidget.cpp" line="962"/>
<source>Updatable app detected on your system!</source>
<translation type="unfinished"></translation>
</message>
@ -307,7 +307,7 @@
</message>
<message>
<location filename="../src/tabwidget.cpp" line="253"/>
<location filename="../src/tabwidget.cpp" line="1423"/>
<location filename="../src/tabwidget.cpp" line="1427"/>
<source>Start backup,getting progress</source>
<translation type="unfinished"></translation>
</message>
@ -319,8 +319,8 @@
<message>
<location filename="../src/tabwidget.cpp" line="272"/>
<location filename="../src/tabwidget.cpp" line="276"/>
<location filename="../src/tabwidget.cpp" line="1133"/>
<location filename="../src/tabwidget.cpp" line="1176"/>
<location filename="../src/tabwidget.cpp" line="1137"/>
<location filename="../src/tabwidget.cpp" line="1180"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
@ -336,7 +336,7 @@
</message>
<message>
<location filename="../src/tabwidget.cpp" line="317"/>
<location filename="../src/tabwidget.cpp" line="1129"/>
<location filename="../src/tabwidget.cpp" line="1133"/>
<source>Prompt information</source>
<translation type="unfinished"></translation>
</message>
@ -406,167 +406,171 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="666"/>
<location filename="../src/tabwidget.cpp" line="667"/>
<source>View history</source>
<translation type="unfinished"></translation>
<extra-contents_path>/upgrade/View history</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="714"/>
<location filename="../src/tabwidget.cpp" line="1088"/>
<location filename="../src/tabwidget.cpp" line="715"/>
<location filename="../src/tabwidget.cpp" line="1092"/>
<source>details</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="735"/>
<location filename="../src/tabwidget.cpp" line="737"/>
<source>Update Settings</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Upgrade/Update Settings</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="746"/>
<location filename="../src/tabwidget.cpp" line="749"/>
<source>Allowed to renewable notice</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Upgrade/Allowed to renewable notice</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="756"/>
<location filename="../src/tabwidget.cpp" line="759"/>
<source>Backup current system before updates all</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="772"/>
<location filename="../src/tabwidget.cpp" line="775"/>
<source>Download Limit(Kb/s)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="777"/>
<location filename="../src/tabwidget.cpp" line="780"/>
<source>It will be avaliable in the next download.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="813"/>
<location filename="../src/tabwidget.cpp" line="817"/>
<source>Automatically download and install updates</source>
<translation type="unfinished"></translation>
<extra-contents_path>/Upgrade/Automatically download and install updates</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="815"/>
<location filename="../src/tabwidget.cpp" line="819"/>
<source>After it is turned on, the system will automatically download and install updates when there is an available network and available backup and restore partitions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="891"/>
<location filename="../src/tabwidget.cpp" line="895"/>
<source>Ready to install</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1018"/>
<location filename="../src/tabwidget.cpp" line="1022"/>
<source>Last Checked:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1063"/>
<location filename="../src/tabwidget.cpp" line="1067"/>
<source>Dependency conflict exists in this update,need to be completely repaired!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1065"/>
<location filename="../src/tabwidget.cpp" line="1069"/>
<source>packages are going to be removed,Please confirm whether to accept!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1071"/>
<location filename="../src/tabwidget.cpp" line="1075"/>
<source>trying to reconnect </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1071"/>
<location filename="../src/tabwidget.cpp" line="1075"/>
<source> times</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1081"/>
<location filename="../src/tabwidget.cpp" line="1085"/>
<source>back</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1109"/>
<location filename="../src/tabwidget.cpp" line="1113"/>
<source>Updating the software source</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1118"/>
<location filename="../src/tabwidget.cpp" line="1122"/>
<source>The battery is below 50% and the update cannot be downloaded</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1121"/>
<location filename="../src/tabwidget.cpp" line="1125"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1128"/>
<location filename="../src/tabwidget.cpp" line="1132"/>
<source>Please back up the system before all updates to avoid unnecessary losses</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1131"/>
<location filename="../src/tabwidget.cpp" line="1135"/>
<source>Only Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1132"/>
<location filename="../src/tabwidget.cpp" line="1136"/>
<source>Back And Update</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1256"/>
<location filename="../src/tabwidget.cpp" line="1281"/>
<location filename="../src/tabwidget.cpp" line="1332"/>
<location filename="../src/tabwidget.cpp" line="1382"/>
<location filename="../src/tabwidget.cpp" line="1260"/>
<location filename="../src/tabwidget.cpp" line="1285"/>
<location filename="../src/tabwidget.cpp" line="1336"/>
<location filename="../src/tabwidget.cpp" line="1386"/>
<source>update has been canceled!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1285"/>
<location filename="../src/tabwidget.cpp" line="1336"/>
<location filename="../src/tabwidget.cpp" line="1289"/>
<location filename="../src/tabwidget.cpp" line="1340"/>
<source>Part of the update failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1318"/>
<location filename="../src/tabwidget.cpp" line="1322"/>
<source>Part of the update success!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1405"/>
<location filename="../src/tabwidget.cpp" line="1409"/>
<source>An important update is in progress, please wait.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1430"/>
<location filename="../src/tabwidget.cpp" line="1434"/>
<source>Failed to write configuration file, this update will not back up the system!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1434"/>
<location filename="../src/tabwidget.cpp" line="1438"/>
<source>Insufficient backup space, this update will not backup your system!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1438"/>
<location filename="../src/tabwidget.cpp" line="1442"/>
<source>Kylin backup restore tool could not find the UUID, this update will not backup the system!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1441"/>
<location filename="../src/tabwidget.cpp" line="1445"/>
<source>The backup restore partition is abnormal. You may not have a backup restore partition.For more details,see /var/log/backup.log</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1449"/>
<location filename="../src/tabwidget.cpp" line="1453"/>
<source>Calculating Capacity...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1538"/>
<location filename="../src/tabwidget.cpp" line="1542"/>
<source>Calculating</source>
<translation type="unfinished"></translation>
</message>
@ -611,25 +615,25 @@
<location filename="../upgrade.cpp" line="69"/>
<source>View history</source>
<translation type="unfinished"></translation>
<extra-contents_path>/upgrade/View history</extra-contents_path>
<extra-contents_path>/Upgrade/View history</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="71"/>
<source>Update Settings</source>
<translation type="unfinished"></translation>
<extra-contents_path>/upgrade/Update Settings</extra-contents_path>
<extra-contents_path>/Upgrade/Update Settings</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="73"/>
<source>Allowed to renewable notice</source>
<translation type="unfinished"></translation>
<extra-contents_path>/upgrade/Allowed to renewable notice</extra-contents_path>
<extra-contents_path>/Upgrade/Allowed to renewable notice</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="75"/>
<source>Automatically download and install updates</source>
<translation type="unfinished"></translation>
<extra-contents_path>/upgrade/Automatically download and install updates</extra-contents_path>
<extra-contents_path>/Upgrade/Automatically download and install updates</extra-contents_path>
</message>
</context>
<context>

View File

@ -201,11 +201,11 @@
<location filename="../src/tabwidget.cpp" line="141"/>
<location filename="../src/tabwidget.cpp" line="170"/>
<location filename="../src/tabwidget.cpp" line="594"/>
<location filename="../src/tabwidget.cpp" line="931"/>
<location filename="../src/tabwidget.cpp" line="972"/>
<location filename="../src/tabwidget.cpp" line="1095"/>
<location filename="../src/tabwidget.cpp" line="1265"/>
<location filename="../src/tabwidget.cpp" line="1350"/>
<location filename="../src/tabwidget.cpp" line="935"/>
<location filename="../src/tabwidget.cpp" line="976"/>
<location filename="../src/tabwidget.cpp" line="1099"/>
<location filename="../src/tabwidget.cpp" line="1269"/>
<location filename="../src/tabwidget.cpp" line="1354"/>
<source>Check Update</source>
<translation></translation>
</message>
@ -218,41 +218,41 @@
<location filename="../src/tabwidget.cpp" line="129"/>
<location filename="../src/tabwidget.cpp" line="223"/>
<location filename="../src/tabwidget.cpp" line="464"/>
<location filename="../src/tabwidget.cpp" line="955"/>
<location filename="../src/tabwidget.cpp" line="1114"/>
<location filename="../src/tabwidget.cpp" line="1254"/>
<location filename="../src/tabwidget.cpp" line="1316"/>
<location filename="../src/tabwidget.cpp" line="1381"/>
<location filename="../src/tabwidget.cpp" line="1394"/>
<location filename="../src/tabwidget.cpp" line="959"/>
<location filename="../src/tabwidget.cpp" line="1118"/>
<location filename="../src/tabwidget.cpp" line="1258"/>
<location filename="../src/tabwidget.cpp" line="1320"/>
<location filename="../src/tabwidget.cpp" line="1385"/>
<location filename="../src/tabwidget.cpp" line="1398"/>
<source>UpdateAll</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="157"/>
<location filename="../src/tabwidget.cpp" line="933"/>
<location filename="../src/tabwidget.cpp" line="974"/>
<location filename="../src/tabwidget.cpp" line="1267"/>
<location filename="../src/tabwidget.cpp" line="1351"/>
<location filename="../src/tabwidget.cpp" line="937"/>
<location filename="../src/tabwidget.cpp" line="978"/>
<location filename="../src/tabwidget.cpp" line="1271"/>
<location filename="../src/tabwidget.cpp" line="1355"/>
<source>Your system is the latest!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="158"/>
<location filename="../src/tabwidget.cpp" line="936"/>
<location filename="../src/tabwidget.cpp" line="977"/>
<location filename="../src/tabwidget.cpp" line="1007"/>
<location filename="../src/tabwidget.cpp" line="1295"/>
<location filename="../src/tabwidget.cpp" line="1361"/>
<location filename="../src/tabwidget.cpp" line="940"/>
<location filename="../src/tabwidget.cpp" line="981"/>
<location filename="../src/tabwidget.cpp" line="1011"/>
<location filename="../src/tabwidget.cpp" line="1299"/>
<location filename="../src/tabwidget.cpp" line="1365"/>
<source>No Information!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="168"/>
<location filename="../src/tabwidget.cpp" line="946"/>
<location filename="../src/tabwidget.cpp" line="987"/>
<location filename="../src/tabwidget.cpp" line="1017"/>
<location filename="../src/tabwidget.cpp" line="1305"/>
<location filename="../src/tabwidget.cpp" line="1371"/>
<location filename="../src/tabwidget.cpp" line="950"/>
<location filename="../src/tabwidget.cpp" line="991"/>
<location filename="../src/tabwidget.cpp" line="1021"/>
<location filename="../src/tabwidget.cpp" line="1309"/>
<location filename="../src/tabwidget.cpp" line="1375"/>
<source>Last refresh:</source>
<translation></translation>
</message>
@ -275,13 +275,13 @@
<message>
<location filename="../src/tabwidget.cpp" line="210"/>
<location filename="../src/tabwidget.cpp" line="455"/>
<location filename="../src/tabwidget.cpp" line="1390"/>
<location filename="../src/tabwidget.cpp" line="1394"/>
<source>Being updated...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="222"/>
<location filename="../src/tabwidget.cpp" line="958"/>
<location filename="../src/tabwidget.cpp" line="962"/>
<source>Updatable app detected on your system!</source>
<translation></translation>
</message>
@ -307,7 +307,7 @@
</message>
<message>
<location filename="../src/tabwidget.cpp" line="253"/>
<location filename="../src/tabwidget.cpp" line="1423"/>
<location filename="../src/tabwidget.cpp" line="1427"/>
<source>Start backup,getting progress</source>
<translation></translation>
</message>
@ -319,8 +319,8 @@
<message>
<location filename="../src/tabwidget.cpp" line="272"/>
<location filename="../src/tabwidget.cpp" line="276"/>
<location filename="../src/tabwidget.cpp" line="1133"/>
<location filename="../src/tabwidget.cpp" line="1176"/>
<location filename="../src/tabwidget.cpp" line="1137"/>
<location filename="../src/tabwidget.cpp" line="1180"/>
<source>Cancel</source>
<translation></translation>
</message>
@ -336,7 +336,7 @@
</message>
<message>
<location filename="../src/tabwidget.cpp" line="317"/>
<location filename="../src/tabwidget.cpp" line="1129"/>
<location filename="../src/tabwidget.cpp" line="1133"/>
<source>Prompt information</source>
<translation></translation>
</message>
@ -406,167 +406,171 @@
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="666"/>
<location filename="../src/tabwidget.cpp" line="667"/>
<source>View history</source>
<translation></translation>
<extra-contents_path>/upgrade/View history</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="714"/>
<location filename="../src/tabwidget.cpp" line="1088"/>
<location filename="../src/tabwidget.cpp" line="715"/>
<location filename="../src/tabwidget.cpp" line="1092"/>
<source>details</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="735"/>
<location filename="../src/tabwidget.cpp" line="737"/>
<source>Update Settings</source>
<translation></translation>
<extra-contents_path>/Upgrade/Update Settings</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="746"/>
<location filename="../src/tabwidget.cpp" line="749"/>
<source>Allowed to renewable notice</source>
<translation></translation>
<extra-contents_path>/Upgrade/Allowed to renewable notice</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="756"/>
<location filename="../src/tabwidget.cpp" line="759"/>
<source>Backup current system before updates all</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="772"/>
<location filename="../src/tabwidget.cpp" line="775"/>
<source>Download Limit(Kb/s)</source>
<translation>(Kb/s)</translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="777"/>
<location filename="../src/tabwidget.cpp" line="780"/>
<source>It will be avaliable in the next download.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="813"/>
<location filename="../src/tabwidget.cpp" line="817"/>
<source>Automatically download and install updates</source>
<translation></translation>
<extra-contents_path>/Upgrade/Automatically download and install updates</extra-contents_path>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="815"/>
<location filename="../src/tabwidget.cpp" line="819"/>
<source>After it is turned on, the system will automatically download and install updates when there is an available network and available backup and restore partitions.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="891"/>
<location filename="../src/tabwidget.cpp" line="895"/>
<source>Ready to install</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1018"/>
<location filename="../src/tabwidget.cpp" line="1022"/>
<source>Last Checked:</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1063"/>
<location filename="../src/tabwidget.cpp" line="1067"/>
<source>Dependency conflict exists in this update,need to be completely repaired!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1065"/>
<location filename="../src/tabwidget.cpp" line="1069"/>
<source>packages are going to be removed,Please confirm whether to accept!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1071"/>
<location filename="../src/tabwidget.cpp" line="1075"/>
<source>trying to reconnect </source>
<translation> </translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1071"/>
<location filename="../src/tabwidget.cpp" line="1075"/>
<source> times</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1081"/>
<location filename="../src/tabwidget.cpp" line="1085"/>
<source>back</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1109"/>
<location filename="../src/tabwidget.cpp" line="1113"/>
<source>Updating the software source</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1118"/>
<location filename="../src/tabwidget.cpp" line="1122"/>
<source>The battery is below 50% and the update cannot be downloaded</source>
<translation> 50%</translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1121"/>
<location filename="../src/tabwidget.cpp" line="1125"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1128"/>
<location filename="../src/tabwidget.cpp" line="1132"/>
<source>Please back up the system before all updates to avoid unnecessary losses</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1131"/>
<location filename="../src/tabwidget.cpp" line="1135"/>
<source>Only Update</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1132"/>
<location filename="../src/tabwidget.cpp" line="1136"/>
<source>Back And Update</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1256"/>
<location filename="../src/tabwidget.cpp" line="1281"/>
<location filename="../src/tabwidget.cpp" line="1332"/>
<location filename="../src/tabwidget.cpp" line="1382"/>
<location filename="../src/tabwidget.cpp" line="1260"/>
<location filename="../src/tabwidget.cpp" line="1285"/>
<location filename="../src/tabwidget.cpp" line="1336"/>
<location filename="../src/tabwidget.cpp" line="1386"/>
<source>update has been canceled!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1285"/>
<location filename="../src/tabwidget.cpp" line="1336"/>
<location filename="../src/tabwidget.cpp" line="1289"/>
<location filename="../src/tabwidget.cpp" line="1340"/>
<source>Part of the update failed!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1318"/>
<location filename="../src/tabwidget.cpp" line="1322"/>
<source>Part of the update success!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1405"/>
<location filename="../src/tabwidget.cpp" line="1409"/>
<source>An important update is in progress, please wait.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1430"/>
<location filename="../src/tabwidget.cpp" line="1434"/>
<source>Failed to write configuration file, this update will not back up the system!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1434"/>
<location filename="../src/tabwidget.cpp" line="1438"/>
<source>Insufficient backup space, this update will not backup your system!</source>
<translation></translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1438"/>
<location filename="../src/tabwidget.cpp" line="1442"/>
<source>Kylin backup restore tool could not find the UUID, this update will not backup the system!</source>
<translation>UUID</translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1441"/>
<location filename="../src/tabwidget.cpp" line="1445"/>
<source>The backup restore partition is abnormal. You may not have a backup restore partition.For more details,see /var/log/backup.log</source>
<translation>/var/log/backup.log</translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1449"/>
<location filename="../src/tabwidget.cpp" line="1453"/>
<source>Calculating Capacity...</source>
<translation>...</translation>
</message>
<message>
<location filename="../src/tabwidget.cpp" line="1538"/>
<location filename="../src/tabwidget.cpp" line="1542"/>
<source>Calculating</source>
<translation></translation>
</message>
@ -611,25 +615,25 @@
<location filename="../upgrade.cpp" line="69"/>
<source>View history</source>
<translation></translation>
<extra-contents_path>/upgrade/View history</extra-contents_path>
<extra-contents_path>/Upgrade/View history</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="71"/>
<source>Update Settings</source>
<translation></translation>
<extra-contents_path>/upgrade/Update Settings</extra-contents_path>
<extra-contents_path>/Upgrade/Update Settings</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="73"/>
<source>Allowed to renewable notice</source>
<translation></translation>
<extra-contents_path>/upgrade/Allowed to renewable notice</extra-contents_path>
<extra-contents_path>/Upgrade/Allowed to renewable notice</extra-contents_path>
</message>
<message>
<location filename="../upgrade.cpp" line="75"/>
<source>Automatically download and install updates</source>
<translation></translation>
<extra-contents_path>/upgrade/Automatically download and install updates</extra-contents_path>
<extra-contents_path>/Upgrade/Automatically download and install updates</extra-contents_path>
</message>
</context>
<context>

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More