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:
20 UnknownType = 0,
21 Deepin,
22 ArchLinux,
23 CentOS,
24 Debian,
25 Fedora,
26 LinuxMint,
27 Manjaro,
28 openSUSE,
29 SailfishOS,
30 Ubuntu,
31 Uos,
32 Gentoo,
33 NixOS
34 };
35
37 UnknownDeepin = 0,
38 DeepinDesktop,
39 DeepinProfessional,
40 DeepinServer,
41 DeepinPersonal
42 };
43
44 enum LogoType {
45 Normal = 0,
46 Light,
47 Symbolic,
48 Transparent
49 };
50
51 enum OrgType {
52 Distribution,
53 Distributor,
54 Manufacturer
55 };
56
57 enum UosType {
58 UosTypeUnknown,
59 UosDesktop,
60 UosServer,
61 UosDevice,
62
63 UosTypeCount // must at last
64 };
65
67 UosEditionUnknown,
68 UosProfessional,
69 UosHome,
70 UosCommunity,
71 UosMilitary,
72 UosEnterprise,
73 UosEnterpriseC,
74 UosEuler,
75 UosMilitaryS, // for Server
76 UosDeviceEdition,
77 UosEducation,
78
79 UosEditionCount // must at last
80 };
81
82 enum UosArch {
83 UosArchUnknown,
84 UosAMD64 = 1 << 0,
85 UosARM64 = 1 << 1,
86 UosMIPS64 = 1 << 2,
87 UosSW64 = 1 << 3
88 };
89
91 enum Arch {
92 ARM64,
93 ARM64_BE,
94 ARM,
95 ARM_BE,
96 ALPHA,
97 SW_64,
98 ARC,
99 ARC_BE,
100 CRIS,
101 X86_64,
102 X86,
103 IA64,
104 LOONGARCH64,
105 M68K,
106 MIPS64_LE,
107 MIPS64,
108 MIPS_LE,
109 MIPS,
110 NIOS2,
111 PARISC64,
112 PARISC,
113 PPC64_LE,
114 PPC64,
115 PPC,
116 PPC_LE,
117 RISCV32,
118 RISCV64,
119 S390X,
120 S390,
121 SH64,
122 SH,
123 SPARC64,
124 SPARC,
125 TILEGX,
127 NUM_ARCHES,
128 };
129 Q_ENUM(Arch) // Q_GADGET
130
131#ifdef Q_OS_LINUX
132 static bool isDeepin();
133 static bool isDDE();
135 static QString deepinTypeDisplayName(const QLocale &locale = QLocale::system());
136 static QString deepinVersion();
137 static QString deepinEdition();
138 static QString deepinCopyright();
139
140 // uos version interface
141 Q_DECL_DEPRECATED_X("Use arch() instead") static UosType uosType();
142 static UosEdition uosEditionType();
143 static UosArch uosArch();
144 static QString uosProductTypeName(const QLocale &locale = QLocale::system());
145 static QString uosSystemName(const QLocale &locale = QLocale::system());
146 static QString uosEditionName(const QLocale &locale = QLocale::system());
147
148 static QString spVersion(); // SP1...SP99
149 static QString udpateVersion(); // update1...update9
150 static QString majorVersion();
151 static QString minorVersion();
152 static QString buildVersion(); // xyzs
153#endif
154
155 Q_DECL_DEPRECATED_X("Use distributionInfoPath() instead") static QString deepinDistributionInfoPath();
156 static QString distributionInfoPath();
157 static QString distributionInfoSectionName(OrgType type);
158
159 static QString distributionOrgName(OrgType type = Distribution, const QLocale &locale = QLocale::system());
160 Q_DECL_DEPRECATED_X("Use deepinDistributionOrgName() instead") static QString deepinDistributorName();
161 static QPair<QString, QString> distributionOrgWebsite(OrgType type = Distribution);
162 Q_DECL_DEPRECATED_X("Use deepinDistributionOrgWebsite() instead") static QPair<QString, QString> deepinDistributorWebsite();
163 static QString distributionOrgLogo(OrgType orgType = Distribution, LogoType type = Normal, const QString & fallback = QString());
164 Q_DECL_DEPRECATED_X("Use deepinDistributionOrgLogo() instead") static QString deepinDistributorLogo(LogoType type = Normal, const QString & fallback = QString());
165
166 static QString operatingSystemName();
167 static ProductType productType();
168 static QString productTypeString();
169 static QString productVersion();
170 static bool isCommunityEdition();
171
172 static QString computerName();
173 static QString cpuModelName();
174 static qint64 memoryInstalledSize();
175 static qint64 memoryTotalSize();
176 static qint64 systemDiskSize();
177
178 static QDateTime bootTime();
179 static QDateTime shutdownTime();
180 static qint64 uptime();
181 static Arch arch();
182};
183
184DCORE_END_NAMESPACE
185
186#endif // DSYSINFO_H
dsysinfo 是一组用于查询系统信息的静态类
Definition: dsysinfo.h:16
UosArch
UOS使用的架构
Definition: dsysinfo.h:82
OrgType
Definition: dsysinfo.h:51
static bool isDDE()
是否使用dde桌面环境
static DeepinType deepinType()
deepin系统类型
ProductType
产品信息
Definition: dsysinfo.h:19
static QString deepinCopyright()
deepin 开源许可协议
LogoType
系统的logo类型
Definition: dsysinfo.h:44
UosEdition
详细uos版本
Definition: dsysinfo.h:66
UosType
UOS版本类型
Definition: dsysinfo.h:57
static QString deepinTypeDisplayName(const QLocale &locale=QLocale::system())
显示的deepin发行版类型名称
static QString deepinVersion()
deepin版本
DeepinType
深度操作系统版本
Definition: dsysinfo.h:36