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
37 UnknownDeepin = 0,
42 DeepinMilitary
43 };
44
45 enum LogoType {
46 Normal = 0,
49 Transparent
50 };
51
52 enum OrgType {
55 Manufacturer
56 };
57
58 enum UosType {
63 UosSmart,
64
65 UosTypeCount // must at last
66 };
67
83
84 enum UosArch {
86 UosAMD64 = 1 << 0,
87 UosARM64 = 1 << 1,
88 UosMIPS64 = 1 << 2,
89 UosSW64 = 1 << 3
90 };
91
93 enum Arch {
94 ARM64,
95 ARM64_BE,
96 ARM,
97 ARM_BE,
98 ALPHA,
99 SW_64,
100 ARC,
101 ARC_BE,
102 CRIS,
103 X86_64,
104 X86,
105 IA64,
106 LOONGARCH64,
107 M68K,
108 MIPS64_LE,
109 MIPS64,
110 MIPS_LE,
111 MIPS,
112 NIOS2,
113 PARISC64,
114 PARISC,
115 PPC64_LE,
116 PPC64,
117 PPC,
118 PPC_LE,
119 RISCV32,
120 RISCV64,
121 S390X,
122 S390,
123 SH64,
124 SH,
125 SPARC64,
126 SPARC,
127 TILEGX,
129 NUM_ARCHES,
130 };
131 Q_ENUM(Arch) // Q_GADGET
132
133#ifdef Q_OS_LINUX
134 static bool isDeepin();
135 static bool isDDE();
137 static QString deepinTypeDisplayName(const QLocale &locale = QLocale::system());
138 static QString deepinVersion();
139 static QString deepinEdition();
140 static QString deepinCopyright();
141
142 // uos version interface
143 static UosType uosType();
145#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
146 Q_DECL_DEPRECATED_X("Use arch() instead") static UosArch uosArch();
147#endif
148 static QString uosProductTypeName(const QLocale &locale = QLocale::system());
149 static QString uosSystemName(const QLocale &locale = QLocale::system());
150 static QString uosEditionName(const QLocale &locale = QLocale::system());
151
152 static QString spVersion(); // SP1...SP99
153 static QString udpateVersion(); // update1...update9
154 static QString majorVersion();
155 static QString minorVersion();
156 static QString buildVersion(); // xyzs
157#endif
158
159#if DTK_VERSION < DTK_VERSION_CHECK(6, 0, 0, 0)
160 Q_DECL_DEPRECATED_X("Use distributionInfoPath() instead") static QString deepinDistributionInfoPath();
161 Q_DECL_DEPRECATED_X("Use distributionOrgName() instead") static QString deepinDistributorName();
162 Q_DECL_DEPRECATED_X("Use distributionOrgWebsite() instead") static QPair<QString, QString> deepinDistributorWebsite();
163 Q_DECL_DEPRECATED_X("Use distributionOrgLogo() instead") static QString deepinDistributorLogo(LogoType type = Normal, const QString & fallback = QString());
164#endif
165 static QString distributionInfoPath();
167
168 static QString distributionOrgName(OrgType type = Distribution, const QLocale &locale = QLocale::system());
169 static QPair<QString, QString> distributionOrgWebsite(OrgType type = Distribution);
170 static QString distributionOrgLogo(OrgType orgType = Distribution, LogoType type = Normal, const QString & fallback = QString());
171
172 static QString operatingSystemName();
174 static QString productTypeString();
175 static QString productVersion();
176 static bool isCommunityEdition();
177
178 static QString computerName();
179 static QString cpuModelName();
180 static qint64 memoryInstalledSize();
181 static qint64 memoryTotalSize();
182 static qint64 systemDiskSize();
183
184 static QDateTime bootTime();
185 static QDateTime shutdownTime();
186 static qint64 uptime();
187 static Arch arch();
188};
189
190DCORE_END_NAMESPACE
191
192#endif // DSYSINFO_H
dsysinfo 是一组用于查询系统信息的静态类
Definition dsysinfo.h:16
static QPair< QString, QString > distributionOrgWebsite(OrgType type=Distribution)
发行版组织的网站名称和网址。使用 type 作为 Distribution 获取当前 deepin 发行版本身的名称。
UosArch
UOS使用的架构
Definition dsysinfo.h:84
@ UosArchUnknown
未知架构
Definition dsysinfo.h:85
static QString operatingSystemName()
操作系统名
static QString cpuModelName()
cpu模式名
OrgType
组织类型
Definition dsysinfo.h:52
@ Distributor
当前发行版
Definition dsysinfo.h:54
@ Distribution
当前版本
Definition dsysinfo.h:53
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:45
@ Light
亮色
Definition dsysinfo.h:47
@ Symbolic
符号
Definition dsysinfo.h:48
static QString majorVersion()
主版本号 主版本号 【20】【23】【25】【26】【29】【30】
UosEdition
详细uos版本
Definition dsysinfo.h:68
@ UosCommunity
社区版
Definition dsysinfo.h:72
@ UosMilitary
Definition dsysinfo.h:73
@ UosHome
UOS家庭版
Definition dsysinfo.h:71
@ UosDeviceEdition
UOS专用设备版
Definition dsysinfo.h:78
@ UosEditionUnknown
未知版本
Definition dsysinfo.h:69
@ UosMilitaryS
Definition dsysinfo.h:77
@ UosProfessional
UOS专业版
Definition dsysinfo.h:70
@ UosEducation
UOS教育版
Definition dsysinfo.h:79
@ UosEnterprise
UOS企业版
Definition dsysinfo.h:74
@ UosEnterpriseC
UOS行业版
Definition dsysinfo.h:75
@ UosEuler
UOS服务器欧拉版
Definition dsysinfo.h:76
static QString distributionInfoPath()
返回 distribution 文件地址 一般在/usr/share/deepin/目录下
UosType
UOS版本类型
Definition dsysinfo.h:58
@ UosDevice
UOS设备版
Definition dsysinfo.h:62
@ UosServer
UOS服务器版
Definition dsysinfo.h:61
@ UosDesktop
UOS桌面版
Definition dsysinfo.h:60
@ UosTypeUnknown
未知版本
Definition dsysinfo.h:59
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:36
@ DeepinServer
deepin服务器版本, 现为uos服务器版
Definition dsysinfo.h:40
@ DeepinDesktop
桌面版
Definition dsysinfo.h:38
@ DeepinProfessional
deepin专业版, 现为uos专业版
Definition dsysinfo.h:39
@ DeepinPersonal
deepin个人版, 现为uos家庭版
Definition dsysinfo.h:41
static QString computerName()
电脑名
static QString uosSystemName(const QLocale &locale=QLocale::system())
SystemName[xx] 项对应的值
static QDateTime shutdownTime()
上一次正常关机时间点(重启也会被记录在内)