DtkCore
DTK Core module
载入中...
搜索中...
未找到
dsysinfo.h
浏览该文件的文档.
1// SPDX-FileCopyrightText: 2017 - 2022 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DSYSINFO_H
6#define DSYSINFO_H
7
8#include <dtkcore_global.h>
9
10#include <QLocale>
11
12DCORE_BEGIN_NAMESPACE
13
14class DSysInfoPrivate;
15class LIBDTKCORESHARED_EXPORT DSysInfo
16{
17 Q_GADGET
18public:
35
36 Q_ENUM(ProductType)
37
39 UnknownDeepin = 0,
44 DeepinMilitary
45 };
46
47 enum LogoType {
48 Normal = 0,
51 Transparent
52 };
53
54 enum OrgType {
57 Manufacturer
58 };
59
60 enum UosType {
65 UosSmart,
66
67 UosTypeCount // must at last
68 };
69
85
86 enum UosArch {
88 UosAMD64 = 1 << 0,
89 UosARM64 = 1 << 1,
90 UosMIPS64 = 1 << 2,
91 UosSW64 = 1 << 3
92 };
93
95 enum Arch {
96 ARM64,
97 ARM64_BE,
98 ARM,
99 ARM_BE,
100 ALPHA,
101 SW_64,
102 ARC,
103 ARC_BE,
104 CRIS,
105 X86_64,
106 X86,
107 IA64,
108 LOONGARCH64,
109 M68K,
110 MIPS64_LE,
111 MIPS64,
112 MIPS_LE,
113 MIPS,
114 NIOS2,
115 PARISC64,
116 PARISC,
117 PPC64_LE,
118 PPC64,
119 PPC,
120 PPC_LE,
121 RISCV32,
122 RISCV64,
123 S390X,
124 S390,
125 SH64,
126 SH,
127 SPARC64,
128 SPARC,
129 TILEGX,
131 NUM_ARCHES,
132 };
133 Q_ENUM(Arch) // Q_GADGET
134
135#ifdef Q_OS_LINUX
136 static bool isDeepin();
137 static bool isDDE();
139 static QString deepinTypeDisplayName(const QLocale &locale = QLocale::system());
140 static QString deepinVersion();
141 static QString deepinEdition();
142 static QString deepinCopyright();
143
144 // uos version interface
145 static UosType uosType();
147#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
148 Q_DECL_DEPRECATED_X("Use arch() instead") static UosArch uosArch();
149#endif
150 static QString uosProductTypeName(const QLocale &locale = QLocale::system());
151 static QString uosSystemName(const QLocale &locale = QLocale::system());
152 static QString uosEditionName(const QLocale &locale = QLocale::system());
153
154 static QString spVersion(); // SP1...SP99
155 static QString udpateVersion(); // update1...update9
156 static QString majorVersion();
157 static QString minorVersion();
158 static QString buildVersion(); // xyzs
159#endif
160
161#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
162 Q_DECL_DEPRECATED_X("Use distributionInfoPath() instead") static QString deepinDistributionInfoPath();
163 Q_DECL_DEPRECATED_X("Use distributionOrgName() instead") static QString deepinDistributorName();
164 Q_DECL_DEPRECATED_X("Use distributionOrgWebsite() instead") static QPair<QString, QString> deepinDistributorWebsite();
165 Q_DECL_DEPRECATED_X("Use distributionOrgLogo() instead") static QString deepinDistributorLogo(LogoType type = Normal, const QString & fallback = QString());
166#endif
167 static QString distributionInfoPath();
169
170 static QString distributionOrgName(OrgType type = Distribution, const QLocale &locale = QLocale::system());
171 static QPair<QString, QString> distributionOrgWebsite(OrgType type = Distribution);
172 static QString distributionOrgLogo(OrgType orgType = Distribution, LogoType type = Normal, const QString & fallback = QString());
173
174 static QString operatingSystemName();
176 static QString productTypeString();
177 static QString productVersion();
178 static bool isCommunityEdition();
179
180 static QString computerName();
181 static QString cpuModelName();
182 static qint64 memoryInstalledSize();
183 static qint64 memoryTotalSize();
184 static qint64 systemDiskSize();
185
186 static QDateTime bootTime();
187 static QDateTime shutdownTime();
188 static qint64 uptime();
189 static Arch arch();
190};
191
192DCORE_END_NAMESPACE
193
194#endif // DSYSINFO_H
dsysinfo 是一组用于查询系统信息的静态类
Definition dsysinfo.h:16
static QPair< QString, QString > distributionOrgWebsite(OrgType type=Distribution)
发行版组织的网站名称和网址。使用 type 作为 Distribution 获取当前 deepin 发行版本身的名称。
UosArch
UOS使用的架构
Definition dsysinfo.h:86
@ UosArchUnknown
未知架构
Definition dsysinfo.h:87
static QString operatingSystemName()
操作系统名
static QString cpuModelName()
cpu模式名
OrgType
组织类型
Definition dsysinfo.h:54
@ Distributor
当前发行版
Definition dsysinfo.h:56
@ Distribution
当前版本
Definition dsysinfo.h:55
static QString minorVersion()
小版本号 【ABCD】 ·[0-9]{4} 【A.B.C】 或者【X.Y.Z】
static bool isCommunityEdition()
检查当前版本是否是社区版 开发者可以使用这种方式来检查我们是否需要启用或禁用社区版或企业版的功能。
static QString distributionOrgName(OrgType type=Distribution, const QLocale &locale=QLocale::system())
返回组织名称
static ProductType productType()
产品类型
static UosEdition uosEditionType()
DSysInfo::osEditionType 版本类型 显示版本类型 专业版/个人版/社区版..
static QString buildVersion()
小版本号 系统镜像批次号, 按时间顺序(不可回退)从100-999递增
static QString productVersion()
产品版本
static QString spVersion()
阶段版本名称
static QString distributionInfoSectionName(OrgType type)
返回 distribution.info 文件中 SectionName 字段的值
static QString udpateVersion()
更新版本名称 小版本号 A-BC-D 中 D、A.B.C 模式中的 C 返回 update1… update9, 如果正式版返回空 X.Y.Z 模式下暂不支持返回此版本号
static bool isDDE()
是否使用 dde 桌面环境
static qint64 uptime()
系统启动到现在时长
static Arch arch()
cpu架构信息
static bool isDeepin()
是否为 deepin 或 uos 系统
static DeepinType deepinType()
deepin 系统类型
static QString distributionOrgLogo(OrgType orgType=Distribution, LogoType type=Normal, const QString &fallback=QString())
获得的组织logo路径, 如果不存在, 则返回给定的其他路径
ProductType
产品信息
Definition dsysinfo.h:19
@ Fedora
Fedora
Definition dsysinfo.h:25
@ ArchLinux
ArchLinux
Definition dsysinfo.h:22
@ SailfishOS
SailfishOS
Definition dsysinfo.h:29
@ Deepin
深度操作系统
Definition dsysinfo.h:21
@ CentOS
CentOS
Definition dsysinfo.h:23
@ Debian
Debian
Definition dsysinfo.h:24
@ Manjaro
Manjaro
Definition dsysinfo.h:27
@ Uos
UOS
Definition dsysinfo.h:31
@ openSUSE
openSUSE
Definition dsysinfo.h:28
@ Ubuntu
Ubuntu
Definition dsysinfo.h:30
@ Gentoo
Gentoo
Definition dsysinfo.h:32
@ LinuxMint
LinuxMint
Definition dsysinfo.h:26
static QString deepinCopyright()
deepin 开源许可协议
LogoType
系统的logo类型
Definition dsysinfo.h:47
@ Light
亮色
Definition dsysinfo.h:49
@ Symbolic
符号
Definition dsysinfo.h:50
static QString majorVersion()
主版本号 主版本号 【20】【23】【25】【26】【29】【30】
UosEdition
详细uos版本
Definition dsysinfo.h:70
@ UosCommunity
社区版
Definition dsysinfo.h:74
@ UosMilitary
Definition dsysinfo.h:75
@ UosHome
UOS家庭版
Definition dsysinfo.h:73
@ UosDeviceEdition
UOS专用设备版
Definition dsysinfo.h:80
@ UosEditionUnknown
未知版本
Definition dsysinfo.h:71
@ UosMilitaryS
Definition dsysinfo.h:79
@ UosProfessional
UOS专业版
Definition dsysinfo.h:72
@ UosEducation
UOS教育版
Definition dsysinfo.h:81
@ UosEnterprise
UOS企业版
Definition dsysinfo.h:76
@ UosEnterpriseC
UOS行业版
Definition dsysinfo.h:77
@ UosEuler
UOS服务器欧拉版
Definition dsysinfo.h:78
static QString distributionInfoPath()
返回 distribution 文件地址 一般在/usr/share/deepin/目录下
UosType
UOS版本类型
Definition dsysinfo.h:60
@ UosDevice
UOS设备版
Definition dsysinfo.h:64
@ UosServer
UOS服务器版
Definition dsysinfo.h:63
@ UosDesktop
UOS桌面版
Definition dsysinfo.h:62
@ UosTypeUnknown
未知版本
Definition dsysinfo.h:61
static qint64 systemDiskSize()
系统磁盘大小
static QString deepinTypeDisplayName(const QLocale &locale=QLocale::system())
显示的 deepin 发行版类型名称
static qint64 memoryInstalledSize()
内存安装大小
static qint64 memoryTotalSize()
实际内存大小
static QDateTime bootTime()
系统启动时间点
static QString deepinVersion()
deepin 版本
DeepinType
深度操作系统版本
Definition dsysinfo.h:38
@ DeepinServer
deepin服务器版本, 现为uos服务器版
Definition dsysinfo.h:42
@ DeepinDesktop
桌面版
Definition dsysinfo.h:40
@ DeepinProfessional
deepin专业版, 现为uos专业版
Definition dsysinfo.h:41
@ DeepinPersonal
deepin个人版, 现为uos家庭版
Definition dsysinfo.h:43
static QString computerName()
电脑名
static QString uosSystemName(const QLocale &locale=QLocale::system())
SystemName[xx] 项对应的值
static QDateTime shutdownTime()
上一次正常关机时间点(重启也会被记录在内)