10#include <KConfigLoader>
11#include <KConfigPropertyMap>
12#include <KLocalizedContext>
13#include <KPackage/PackageLoader>
16#include <QStandardItemModel>
20#include "sensorfaces_export.h"
30class FacesModel :
public QStandardItemModel
34 enum AdditionalRoles {
40 ~FacesModel()
override =
default;
45 QHash<int, QByteArray> roleNames()
const override;
48class PresetsModel :
public QStandardItemModel
52 enum AdditionalRoles { PluginIdRole =
Qt::UserRole + 1, ConfigRole, WritableRole };
56 ~PresetsModel()
override =
default;
60 QHash<int, QByteArray> roleNames()
const override;
63struct SensorResolver {
64 SensorResolver(SensorFaceController *_controller,
const QJsonArray &_expected);
67 SensorFaceController *controller =
nullptr;
73 QList<SensorQuery *> queries;
75 std::function<void(SensorResolver *)> callback;
79class SENSORFACES_EXPORT SensorFaceControllerPrivate
82 SensorFaceControllerPrivate();
84 QJsonArray readSensors(
const KConfigGroup &config,
const QString &entryName);
85 QJsonArray readAndUpdateSensors(KConfigGroup &config,
const QString &entryName);
86 QString replaceDiskId(
const QString &entryname)
const;
87 QString replacePartitionId(
const QString &entryname)
const;
88 void resolveSensors(
const QJsonArray &partialEntries, std::function<
void(SensorResolver *)>);
89 SensorFace *createGui(
const QString &qmlPath);
90 QQuickItem *createConfigUi(
const QString &file,
const QVariantMap &initialProperties);
92 SensorFaceController *q;
95 QQmlEngine *configEngine;
97 KConfigGroup faceProperties;
98 KConfigPropertyMap *faceConfiguration =
nullptr;
99 KConfigLoader *faceConfigLoader =
nullptr;
101 bool configNeedsSave =
false;
102 KPackage::Package facePackage;
104 KLocalizedContext *contextObj =
nullptr;
105 KConfigGroup configGroup;
106 KConfigGroup appearanceGroup;
107 KConfigGroup sensorsGroup;
108 KConfigGroup colorsGroup;
109 KConfigGroup labelsGroup;
110 QPointer<SensorFace> fullRepresentation;
111 QPointer<SensorFace> compactRepresentation;
112 QPointer<QQuickItem> faceConfigUi;
113 QPointer<QQuickItem> appearanceConfigUi;
114 QPointer<QQuickItem> sensorsConfigUi;
116 QJsonArray totalSensors;
117 QJsonArray highPrioritySensorIds;
118 QJsonArray lowPrioritySensorIds;
119 QJsonArray missingSensors;
122 bool shouldSync =
true;
123 FacesModel *availableFacesModel =
nullptr;
124 PresetsModel *availablePresetsModel =
nullptr;
126 static QList<QPair<QRegularExpression, QString>> sensorIdReplacements;
127 static QRegularExpression oldDiskSensor;
128 static QRegularExpression oldPartitionSensor;
The SensorFaceController links sensor faces and applications in which these faces are shown.
An object to query the daemon for a list of sensors and their metadata.
virtual QModelIndex parent(const QModelIndex &child) const const override