11import QtQuick.Controls as QQC2
13import org.kde.kirigami as Kirigami
14import org.kde.kquickcontrols
16import org.kde.newstuff as NewStuff
18import org.kde.quickcharts as Charts
19import org.kde.ksysguard.sensors as Sensors
20import org.kde.ksysguard.faces as Faces
25 signal configurationChanged
27 function saveConfig() {
28 controller.title = cfg_title;
29 controller.faceId = cfg_chartFace;
30 controller.showTitle = cfg_showTitle
31 controller.updateRateLimit = cfg_updateRateLimit
33 var preset = pendingPreset;
36 controller.loadPreset(preset);
37 root.controller.highPrioritySensorColors = automaticColorSource.colors
41 property Faces.SensorFaceController controller
42 property alias cfg_title: titleField.text
43 property alias cfg_showTitle: showTitleCheckbox.checked
44 property string cfg_chartFace
45 property alias cfg_updateRateLimit: updateRateLimitSpinBox.value
47 onCfg_titleChanged: configurationChanged();
48 onCfg_showTitleChanged: configurationChanged()
49 onCfg_chartFaceChanged: configurationChanged();
50 onCfg_updateRateLimitChanged: configurationChanged();
53 property
string pendingPreset
55 Component.onCompleted: {
56 cfg_title = controller.title;
57 cfg_chartFace = controller.faceId;
58 cfg_showTitle = controller.showTitle
59 cfg_updateRateLimit = controller.updateRateLimit
62 Charts.ColorGradientSource {
63 id: automaticColorSource
64 baseColor:
Kirigami.Theme.highlightColor
65 itemCount: root.controller.highPrioritySensorIds.length
72 implicitWidth:
Kirigami.Units.gridUnit * 15
74 model: controller.availablePresetsModel
76 contentItem: QQC2.Label {
77 elide: Text.ElideRight
82 visible: model.writable
83 onTriggered: controller.uninstallPreset(model.pluginId);
86 cfg_title = model.display;
87 pendingPreset = model.pluginId;
88 if (model.config.chartFace) {
89 cfg_chartFace = model.config.chartFace;
92 root.configurationChanged();
97 Keys.onShortcutOverride: {
98 if (
event.key ===
Qt.Key_Escape) {
99 event.accepted =
true;
107 Kirigami.FormData.label:
i18nd(
"KSysGuardSensorFaces",
"Presets:")
110 icon.name:
"document-open"
111 text:
i18nd(
"KSysGuardSensorFaces",
"Load Preset...")
112 onClicked: presetSheet.open()
116 Accessible.name:
i18nd(
"KSysGuardSensorFaces",
"Get new presets...")
117 configFile: "systemmonitor-presets.knsrc"
119 onEntryEvent: controller.availablePresetsModel.reload();
121 text: parent.Accessible.name
127 icon.name:
"document-save"
128 text:
i18nd(
"KSysGuardSensorFaces",
"Save Settings As Preset")
129 onClicked: controller.savePreset();
138 Kirigami.FormData.label:
i18nd(
"KSysGuardSensorFaces",
"Title:")
143 id: showTitleCheckbox
144 text:
i18nd(
"KSysGuardSensorFaces",
"Show Title")
149 Kirigami.FormData.label:
i18nd(
"KSysGuardSensorFaces",
"Display Style:")
152 model: controller.availableFacesModel
156 for (var i = 0; i < count; ++i) {
157 if (model.pluginId(i) === cfg_chartFace) {
164 cfg_chartFace = model.pluginId(index);
169 text:
i18nd(
"KSysGuardSensorFaces",
"Get New Display Styles...")
170 configFile: "systemmonitor-faces.knsrc"
171 onEntryEvent: controller.availableFacesModel.reload();
176 id: updateRateLimitSpinBox
177 Layout.preferredWidth: titleField.implicitWidth
179 Kirigami.FormData.label:
i18nd(
"KSysGuardSensorFaces",
"Minimum Time Between Updates:")
186 textFromValue: function(value, locale) {
188 return i18nd(
"KSysGuardSensorFaces",
"No Limit");
190 var seconds = value / 1000;
192 return i18nd(
"KSysGuardSensorFaces",
"1 second");
194 return i18nd(
"KSysGuardSensorFaces",
"%1 seconds", seconds);
198 valueFromText: function(value, locale) {
202 var v = parseInt(value)
QString i18nd(const char *domain, const char *text, const TYPE &arg...)
AKONADI_CALENDAR_EXPORT KCalendarCore::Event::Ptr event(const Akonadi::Item &item)