dde-control-center
Deepin Control Center
载入中...
搜索中...
未找到
utils.h
1//SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
2//
3//SPDX-License-Identifier: GPL-3.0-or-later
4#ifndef UTILS_H
5#define UTILS_H
6#include "interface/namespace.h"
7
8#include <DSysInfo>
9#include <DPlatformHandle>
10
11#include <QMargins>
12#include <QSize>
13#include <QVariant>
14#include <QSettings>
15#include <QMetaMethod>
16#include <QString>
17#include <QLocale>
18#include <QFile>
19#include <QSettings>
20#include <QImageReader>
21#include <QGuiApplication>
22#include <QIcon>
23
24DCORE_USE_NAMESPACE
25
26inline const QMargins ZeroMargins(0, 0, 0, 0);
27
28inline constexpr int ComboxWidgetHeight = 48;
29inline constexpr int SwitchWidgetHeight = 36;
30inline constexpr int ComboxTitleWidth = 110;
31
32inline constexpr qint32 ActionIconSize=30;//大图标角标大小
33inline constexpr qint32 ActionListSize=26;//list图标角标大小
34
35template <typename T>
36T valueByQSettings(const QStringList& configFiles,
37 const QString& group,
38 const QString& key,
39 const QVariant& failback)
40{
41 for (const QString& path : configFiles) {
42 QSettings settings(path, QSettings::IniFormat);
43 if (!group.isEmpty()) {
44 settings.beginGroup(group);
45 }
46
47 const QVariant& v = settings.value(key);
48 if (v.isValid()) {
49 T t = v.value<T>();
50 return t;
51 }
52 }
53
54 return failback.value<T>();
55}
56
57inline QPixmap loadPixmap(const QString &path)
58{
59 qreal ratio = 1.0;
60 QPixmap pixmap;
61
62 const qreal devicePixelRatio = qApp->devicePixelRatio();
63
64 if (!qFuzzyCompare(ratio, devicePixelRatio)) {
65 QImageReader reader;
66 reader.setFileName(qt_findAtNxFile(path, devicePixelRatio, &ratio));
67 if (reader.canRead()) {
68 reader.setScaledSize(reader.size() * (devicePixelRatio / ratio));
69 pixmap = QPixmap::fromImage(reader.read());
70 pixmap.setDevicePixelRatio(devicePixelRatio);
71 }
72 } else {
73 pixmap.load(path);
74 }
75
76 return pixmap;
77}
78
79
80#endif // UTILS_H