فهرست منبع

fixed bug when renaming fans

Malte Veerman 10 سال پیش
والد
کامیت
603b1a5f90
4فایلهای تغییر یافته به همراه42 افزوده شده و 11 حذف شده
  1. 5 1
      package/contents/scripts/arrayfunctions.js
  2. 17 4
      package/contents/ui/KCM.qml
  3. 3 2
      package/contents/ui/PwmFan.qml
  4. 17 4
      package/contents/ui/PwmFansTab.qml

+ 5 - 1
package/contents/scripts/arrayfunctions.js

@@ -25,10 +25,14 @@ function names(array) {
     return names;
 }
 
+function nameWithPath(fan) {
+    return fan.name + "  (" + fan.path + ")";
+}
+
 function namesWithPaths(array) {
     var namesWithPaths = [];
     for (var i=0; i<array.length; i++) {
-        namesWithPaths[i] = array[i].name + "  (" + array[i].path + ")";
+        namesWithPaths[i] = nameWithPath(array[i]);
     }
     return namesWithPaths;
 }

+ 17 - 4
package/contents/ui/KCM.qml

@@ -84,8 +84,16 @@ Item {
                 renderType: Text.NativeRendering
             }
             ComboBox {
-                id: fanCombobox
-                model: ArrayFunctions.namesWithPaths(kcm.loader.allPwmFans)
+                id: fanComboBox
+                model: ListModel {
+                    property var fans: kcm.loader.allPwmFans
+                    id: fanList
+                    Component.onCompleted: {
+                        for (var i=0; i<fans.length; i++) {
+                            fanList.append({"text": ArrayFunctions.nameWithPath(fans[i])});
+                        }
+                    }
+                }
                 Layout.fillWidth: true
                 Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
             }
@@ -100,14 +108,19 @@ Item {
         Loader {
             Layout.fillWidth: true
             Layout.fillHeight: true
-            active: !!kcm.loader.allPwmFans[fanCombobox.currentIndex]
+            active: !!kcm.loader.allPwmFans[fanComboBox.currentIndex]
             sourceComponent: PwmFan {
                 unit: kcm.base.unit
-                fan: kcm.loader.allPwmFans[fanCombobox.currentIndex]
+                fan: kcm.loader.allPwmFans[fanComboBox.currentIndex]
                 loader: kcm.loader
                 systemdCom: kcm.systemdCom
                 minTemp: kcm.base.minTemp
                 maxTemp: kcm.base.maxTemp
+                onNameChanged: {
+                    if (fanComboBox.currentText != ArrayFunctions.nameWithPath(fan)) {
+                        fanList.setProperty(fanComboBox.currentIndex, "text", ArrayFunctions.nameWithPath(fan));
+                    }
+                }
             }
         }
         

+ 3 - 2
package/contents/ui/PwmFan.qml

@@ -35,7 +35,8 @@ Rectangle {
     property int margin: 5
     property int minimizeDuration: 400
     property int unit: 0
-
+    readonly property alias name: nameField.text
+    
     id: root
     color: "transparent"
     border.color: palette.windowText
@@ -86,8 +87,8 @@ Rectangle {
         }
         visible: root.height >= height + margin*2
         text: fan.name
+        onTextChanged: fan.name = text
         color: palette.text
-        onTextChanged: fan.name = text;
         horizontalAlignment: TextEdit.AlignLeft
         wrapMode: TextEdit.Wrap
         font.bold: true

+ 17 - 4
package/contents/ui/PwmFansTab.qml

@@ -41,8 +41,16 @@ ColumnLayout {
             renderType: Text.NativeRendering
         }
         ComboBox {
-            id: fanCombobox
-            model: ArrayFunctions.namesWithPaths(loader.allPwmFans)
+            id: fanComboBox
+            model: ListModel {
+                property var fans: loader.allPwmFans
+                id: fanList
+                Component.onCompleted: {
+                    for (var i=0; i<fans.length; i++) {
+                        fanList.append({"text": ArrayFunctions.nameWithPath(fans[i])});
+                    }
+                }
+            }
             Layout.fillWidth: true
             Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
         }
@@ -55,14 +63,19 @@ ColumnLayout {
     Loader {
         Layout.fillHeight: true
         Layout.fillWidth: true
-        active: !!baseObject.loader.allPwmFans[fanCombobox.currentIndex]
+        active: !!baseObject.loader.allPwmFans[fanComboBox.currentIndex]
         sourceComponent: PwmFan {
             unit: baseObject.unit
-            fan: loader.allPwmFans[fanCombobox.currentIndex]
+            fan: loader.allPwmFans[fanComboBox.currentIndex]
             loader: root.loader
             systemdCom: baseObject.systemdCom
             minTemp: baseObject.minTemp
             maxTemp: baseObject.maxTemp
+            onNameChanged: {
+                if (fanComboBox.currentText != ArrayFunctions.nameWithPath(fan)) {
+                    fanList.setProperty(fanComboBox.currentIndex, "text", ArrayFunctions.nameWithPath(fan));
+                }
+            }
         }
     }