Преглед на файлове

cleanups and small fixes

Malte Veerman преди 9 години
родител
ревизия
703ea47466

+ 2 - 2
fancontrol-gui/package/contents/ui/SensorsTab.qml

@@ -30,7 +30,7 @@ RowLayout {
     id: root
     anchors.fill: parent
     anchors.margins: 10
-
+    
     Repeater {
         model: loader.hwmons.length
 
@@ -95,7 +95,7 @@ RowLayout {
                             id: tempValue
                             anchors.right: parent.right
                             anchors.rightMargin: padding
-                            text: hwmon.temps[index].value + " " + Fancontrol.base.unit
+                            text: Units.fromCelsius(hwmon.temps[index].value, Fancontrol.base.unit) + " " + Fancontrol.base.unit
                         }
                     }
                 }

+ 13 - 7
fancontrol-gui/package/contents/ui/SettingsTab.qml

@@ -75,11 +75,14 @@ Item {
                 Layout.minimumWidth: implicitWidth
                 Layout.fillWidth: true
                 decimals: 2
-                maximumValue: maxTempBox.value
-                minimumValue: Units.fromKelvin(0, Fancontrol.base.unit)
-                value: Units.fromCelsius(Fancontrol.base.minTemp, Fancontrol.base.unit)
+                maximumValue: Number.POSITIVE_INFINITY
+                minimumValue: Fancontrol.Units.fromKelvin(0, Fancontrol.base.unit)
+                value: Fancontrol.Units.fromCelsius(Fancontrol.base.minTemp, Fancontrol.base.unit)
                 suffix: Fancontrol.base.unit
-                onValueChanged: Fancontrol.base.minTemp = value
+                onValueChanged: {
+                    Fancontrol.base.minTemp = value;
+                    if (value > maxTempBox.value) maxTempBox.value = value;
+                }
             }
         }
         RowLayout {
@@ -98,10 +101,13 @@ Item {
                 Layout.fillWidth: true
                 decimals: 2
                 maximumValue: Number.POSITIVE_INFINITY
-                minimumValue: minTempBox.value
-                value: Units.fromCelsius(Fancontrol.base.maxTemp, Fancontrol.base.unit)
+                minimumValue: Fancontrol.Units.fromKelvin(0, Fancontrol.base.unit)
+                value: Fancontrol.Units.fromCelsius(Fancontrol.base.maxTemp, Fancontrol.base.unit)
                 suffix: Fancontrol.base.unit
-                onValueChanged:Fancontrol.base.maxTemp = value
+                onValueChanged: {
+                    Fancontrol.base.maxTemp = value;
+                    if (value < minTempBox.value) minTempBox.value = value;
+                }
             }
         }
         Loader {

+ 2 - 2
import/qml/units.js

@@ -38,7 +38,7 @@ function fromCelsius(degrees, newUnit) {
 
 function fromKelvin(degrees, newUnit) {
     var float = parseFloat(degrees);
-    if (newUnit == 0) { return float - 273.15; }
-    if (newUnit == 2) { return float * 9 / 5 - 459.67; }
+    if (newUnit == "°C") { return float - 273.15; }
+    if (newUnit == "°F") { return float * 9 / 5 - 459.67; }
     return float;
 }    

+ 7 - 6
import/src/fancontrolqmlextension.cpp

@@ -21,12 +21,12 @@
 
 #include "fancontrolqmlextension.h"
 
-#include "guibase.h"
-#include "loader.h"
-#include "hwmon.h"
 #include "fan.h"
 #include "pwmfan.h"
 #include "temp.h"
+#include "hwmon.h"
+#include "loader.h"
+#include "guibase.h"
 
 #ifndef NO_SYSTEMD
 #include "systemdcommunicator.h"
@@ -42,16 +42,17 @@ void FancontrolQmlExtension::registerTypes(const char* uri)
 {
     Q_ASSERT(uri == QLatin1String("Fancontrol.Qml"));
 
-    qmlRegisterType<Loader>();
-    qmlRegisterType<Hwmon>();
     qmlRegisterType<Fan>();
     qmlRegisterUncreatableType<PwmFan>(uri, 1, 0, "PwmFan", QStringLiteral("PwmFan is not instantiable from QML!"));
     qmlRegisterType<Temp>();
-    qmlRegisterSingletonType<GUIBase>(uri, 1, 0, "base", base);
+    qmlRegisterType<Hwmon>();
+    qmlRegisterType<Loader>();
 
 #ifndef NO_SYSTEMD
     qmlRegisterType<SystemdCommunicator>();
 #endif
+
+    qmlRegisterSingletonType<GUIBase>(uri, 1, 0, "base", base);
 }
 
 QObject * FancontrolQmlExtension::base(QQmlEngine *engine, QJSEngine *jsengine)

+ 12 - 1
import/src/guibase.cpp

@@ -45,6 +45,7 @@ GUIBase::GUIBase(QObject *parent) : QObject(parent),
     m_tempModel(new TempModel(this))
 {
     connect(m_config, &Config::configChanged, this, &GUIBase::emitConfigChanged);
+    connect(this, &GUIBase::unitChanged, m_tempModel, &TempModel::setUnit);
 
 #ifndef NO_SYSTEMD
     connect(m_loader, &Loader::requestSetServiceActive, m_com, &SystemdCommunicator::setServiceActive);
@@ -53,8 +54,8 @@ GUIBase::GUIBase(QObject *parent) : QObject(parent),
     QLocale locale = QLocale::system();
     QLocale::MeasurementSystem system = locale.measurementSystem();
     m_unit = (system == QLocale::ImperialUSSystem) ? QStringLiteral("°F") : QStringLiteral("°C");
+    emit unitChanged(m_unit);
 
-    m_tempModel->setUnit(m_unit);
     foreach (Hwmon *hwmon, m_loader->hwmons())
     {
         m_pwmFanModel->addPwmFans(hwmon->pwmFans());
@@ -152,4 +153,14 @@ void GUIBase::emitConfigChanged()
     emit configUrlChanged();
 }
 
+bool GUIBase::hasSystemdCommunicator() const
+{
+#ifndef NO_SYSTEMD
+    return true;
+#else
+    return false;
+#endif
+}
+
+
 }

+ 8 - 13
import/src/guibase.h

@@ -24,7 +24,7 @@
 #define GUIBASE_H
 
 #include <QtCore/QObject>
-#include <QtCore/QStringListModel>
+#include <QtCore/QUrl>
 
 #include "loader.h"
 #include "pwmfanmodel.h"
@@ -32,10 +32,6 @@
 
 #ifndef NO_SYSTEMD
 #include "systemdcommunicator.h"
-
-#define SYSTEMD_BOOL true
-#else
-#define SYSTEMD_BOOL false
 #endif
 
 
@@ -48,20 +44,19 @@ class GUIBase : public QObject
 {
     Q_OBJECT
 
-    Q_PROPERTY(Loader* loader READ loader CONSTANT)
-
 #ifndef NO_SYSTEMD
     Q_PROPERTY(SystemdCommunicator* systemdCom READ systemdCommunicator CONSTANT)
 #endif
 
+    Q_PROPERTY(PwmFanModel *pwmFanModel READ pwmFanModel CONSTANT)
+    Q_PROPERTY(TempModel *tempModel READ tempModel CONSTANT)
+    Q_PROPERTY(Loader* loader READ loader CONSTANT)
     Q_PROPERTY(qreal minTemp READ minTemp WRITE setMinTemp NOTIFY minTempChanged)
     Q_PROPERTY(qreal maxTemp READ maxTemp WRITE setMaxTemp NOTIFY maxTempChanged)
     Q_PROPERTY(QString unit READ unit WRITE setUnit NOTIFY unitChanged)
     Q_PROPERTY(QString serviceName READ serviceName WRITE setServiceName NOTIFY serviceNameChanged)
     Q_PROPERTY(QUrl configUrl READ configUrl WRITE setConfigUrl NOTIFY configUrlChanged)
     Q_PROPERTY(bool configValid READ configValid NOTIFY configUrlChanged)
-    Q_PROPERTY(PwmFanModel *pwmFanModel READ pwmFanModel CONSTANT)
-    Q_PROPERTY(TempModel *tempModel READ tempModel CONSTANT)
 
 public:
 
@@ -83,11 +78,11 @@ public:
     void setMaxTemp(qreal maxTemp);
     void setServiceName(const QString &name);
     void setConfigUrl(const QUrl &url);
-    void setUnit(const QString &unit) { if (unit != m_unit) { m_unit = unit; emit unitChanged(); m_tempModel->setUnit(unit); } }
+    void setUnit(const QString &unit) { if (unit != m_unit) { m_unit = unit; emit unitChanged(m_unit); } }
     PwmFanModel *pwmFanModel() const { return m_pwmFanModel; };
     TempModel *tempModel() const { return m_tempModel; };
     
-    Q_INVOKABLE bool hasSystemdCommunicator() const { return SYSTEMD_BOOL; }
+    Q_INVOKABLE bool hasSystemdCommunicator() const;
 
 
 public slots:
@@ -102,7 +97,7 @@ signals:
     void maxTempChanged();
     void serviceNameChanged();
     void configUrlChanged();
-    void unitChanged();
+    void unitChanged(QString);
 
 
 protected:
@@ -112,7 +107,7 @@ protected:
 
 private:
 
-    Config *m_config;
+    Config *const m_config;
 
 #ifndef NO_SYSTEMD
     SystemdCommunicator *const m_com;

+ 1 - 0
import/src/hwmon.h

@@ -100,4 +100,5 @@ private:
 
 }
 
+
 #endif // HWMON_H

+ 0 - 10
import/src/loader.cpp

@@ -775,16 +775,6 @@ QList<QObject *> Loader::hwmonsAsObjects() const
     return list;
 }
 
-QList<QObject *> Loader::allTemps() const
-{
-    QList<QObject *> list;
-    foreach (const Hwmon *hwmon, m_hwmons)
-    {
-        list += hwmon->tempsAsObjects();
-    }
-    return list;
-}
-
 void Loader::setError (const QString &error, bool critical)
 {
     m_error = error;

+ 0 - 2
import/src/loader.h

@@ -45,7 +45,6 @@ class Loader : public QObject
     Q_PROPERTY(QUrl configUrl READ configUrl NOTIFY configUrlChanged)
     Q_PROPERTY(QString configFile READ configFile NOTIFY configFileChanged)
     Q_PROPERTY(QList<QObject *> hwmons READ hwmonsAsObjects NOTIFY hwmonsChanged)
-    Q_PROPERTY(QList<QObject *> allTemps READ allTemps NOTIFY allTempsChanged)
     Q_PROPERTY(int interval READ interval WRITE setInterval NOTIFY intervalChanged)
     Q_PROPERTY(QString error READ error NOTIFY errorChanged)
     Q_PROPERTY(bool sensorsDetected READ sensorsDetected NOTIFY sensorsDetectedChanged)
@@ -69,7 +68,6 @@ public:
     bool restartServiceAfterTesting() const { return m_reactivateAfterTesting; }
     void setRestartServiceAfterTesting(bool restart);
     QList<QObject *> hwmonsAsObjects() const;
-    QList<QObject *> allTemps() const;
     int interval() const { return m_interval; }
     void setInterval(int interval, bool writeNewConfig = true);
     QString error() const { return m_error; }

+ 2 - 2
import/src/tempmodel.h

@@ -45,7 +45,6 @@ public:
     void setTemps(const QList<Temp *> &temps);
     void addTemps(const QList<Temp *> &temps);
     QList<QObject *> temps() const;
-    void setUnit(const QString &unit) { if (unit != m_unit) { m_unit = unit; updateAll(); } }
 
 
 protected:
@@ -56,7 +55,8 @@ protected:
 public slots:
 
     void updateTemp(Temp *temp);
-
+    void setUnit(const QString &unit) { if (unit != m_unit) { m_unit = unit; updateAll(); } }
+    
 
 protected slots:
 

+ 1 - 1
kcm/package/contents/ui/KCM.qml

@@ -141,7 +141,7 @@ Item {
         Loader {
             Layout.fillWidth: true
             Layout.fillHeight: true
-            active: pwmFans.length > fanComboBox.currentIndex
+            active: pwmFans.length > fanComboBox.currentIndex && fanComboBox.currentIndex >= 0
             sourceComponent: Fancontrol.FanItem {
                 unit: Fancontrol.base.unit
                 fan: pwmFans[fanComboBox.currentIndex]