[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [libkscreen] /: Make Output::Type an enum, adapt tests and get/setter
From:       Àlex_Fiestas <afiestas () kde ! org>
Date:       2013-04-30 18:30:55
Message-ID: 20130430183055.A8B34A603D () git ! kde ! org
[Download RAW message or body]

Git commit 4af0c3ebcff917e11e8ca47f518cc808bb92d0af by Àlex Fiestas.
Committed on 30/04/2013 at 11:56.
Pushed by afiestas into branch 'master'.

Make Output::Type an enum, adapt tests and get/setter

M  +38   -0    backends/fake/parser.cpp
M  +3    -3    src/output.cpp
M  +23   -3    src/output.h
M  +2    -2    tests/testscreenconfig.cpp
M  +1    -1    tests/testxrandr.cpp

http://commits.kde.org/libkscreen/4af0c3ebcff917e11e8ca47f518cc808bb92d0af

diff --git a/backends/fake/parser.cpp b/backends/fake/parser.cpp
index 7e24034..287a3a4 100644
--- a/backends/fake/parser.cpp
+++ b/backends/fake/parser.cpp
@@ -21,6 +21,7 @@
 #include <config.h>
 
 #include <QtCore/QFile>
+#include <KDebug>
 
 #include <qjson/parser.h>
 #include <qjson/qobjecthelper.h>
@@ -104,6 +105,43 @@ Output* Parser::outputFromJson(const QVariant& data)
 
         output->setClones(clones);
     }
+
+    QString type = map["type"].toByteArray().toUpper();
+    if (type.contains("LVDS") || type.contains("EDP") || type.contains("IDP")) {
+        output->setType(Output::Panel);
+    } else if (type.contains("VGA")) {
+        output->setType(Output::VGA);
+    } else if (type.contains("DVI")) {
+        output->setType(Output::DVI);
+    } else if (type.contains("DVI-I")) {
+        output->setType(Output::DVII);
+    } else if (type.contains("DVI-A")) {
+        output->setType(Output::DVIA);
+    } else if (type.contains("DVI-D")) {
+        output->setType(Output::DVID);
+    } else if (type.contains("HDMI")) {
+        output->setType(Output::HDMI);
+    } else if (type.contains("Panel")) {
+        output->setType(Output::Panel);
+    } else if (type.contains("TV")) {
+        output->setType(Output::TV);
+    } else if (type.contains("TV-Composite")) {
+        output->setType(Output::TVComposite);
+    } else if (type.contains("TV-SVideo")) {
+        output->setType(Output::TVSVideo);
+    } else if (type.contains("TV-Component")) {
+        output->setType(Output::TVComponent);
+    } else if (type.contains("TV-SCART")) {
+        output->setType(Output::TVSCART);
+    } else if (type.contains("TV-C4")) {
+        output->setType(Output::TVC4);
+    } else if (type.contains("DisplayPort")) {
+        output->setType(Output::DisplayPort);
+    } else if (type.contains("Unknown")) {
+        output->setType(Output::Unknown);
+    } else {
+        kDebug() << "Output Type not translated:" << type;
+    }
     return output;
 }
 
diff --git a/src/output.cpp b/src/output.cpp
index a07205e..a30ca4a 100644
--- a/src/output.cpp
+++ b/src/output.cpp
@@ -42,7 +42,7 @@ class Output::Private
 
     int id;
     QString name;
-    QString type;
+    Type type;
     QString icon;
     ModeList modeList;
     QList<int> clones;
@@ -131,12 +131,12 @@ void Output::setName(const QString& name)
     Q_EMIT outputChanged();
 }
 
-QString Output::type() const
+Output::Type Output::type() const
 {
     return d->type;
 }
 
-void Output::setType(const QString& type)
+void Output::setType(Type type)
 {
     if (d->type == type) {
         return;
diff --git a/src/output.h b/src/output.h
index d2b543f..2a722af 100644
--- a/src/output.h
+++ b/src/output.h
@@ -39,9 +39,10 @@ class KSCREEN_EXPORT Output : public QObject
 
     public:
         Q_ENUMS(Rotation)
+        Q_ENUMS(Type)
         Q_PROPERTY(int id READ id NOTIFY outputChanged)
         Q_PROPERTY(QString name READ name WRITE setName NOTIFY outputChanged)
-        Q_PROPERTY(QString type READ type WRITE setType NOTIFY outputChanged)
+        Q_PROPERTY(Type type READ type WRITE setType NOTIFY outputChanged)
         Q_PROPERTY(QString icon READ icon WRITE setIcon NOTIFY outputChanged)
         Q_PROPERTY(ModeList modes READ modes CONSTANT)
         Q_PROPERTY(QPoint pos READ pos WRITE setPos NOTIFY posChanged)
@@ -54,6 +55,24 @@ class KSCREEN_EXPORT Output : public QObject
         Q_PROPERTY(QList<int> clones READ clones WRITE setClones NOTIFY clonesChanged)
         Q_PROPERTY(KScreen::Edid* edid READ edid CONSTANT)
 
+        enum Type {
+            Unknown,
+            VGA,
+            DVI,
+            DVII,
+            DVIA,
+            DVID,
+            HDMI,
+            Panel,
+            TV,
+            TVComposite,
+            TVSVideo,
+            TVComponent,
+            TVSCART,
+            TVC4,
+            DisplayPort
+        };
+
         enum Rotation {
             None = 1,
             Left = 2,
@@ -70,8 +89,8 @@ class KSCREEN_EXPORT Output : public QObject
         QString name() const;
         void setName(const QString& name);
 
-        QString type() const;
-        void setType(const QString& type);
+        Type type() const;
+        void setType(Type type);
 
         QString icon() const;
         void setIcon(const QString& icon);
@@ -146,5 +165,6 @@ typedef QHash<int, Output*> OutputList;
 
 Q_DECLARE_METATYPE(KScreen::OutputList)
 Q_DECLARE_METATYPE(KScreen::Output::Rotation)
+Q_DECLARE_METATYPE(KScreen::Output::Type)
 
 #endif //OUTPUT_H
diff --git a/tests/testscreenconfig.cpp b/tests/testscreenconfig.cpp
index 8f3f429..0adbd2a 100644
--- a/tests/testscreenconfig.cpp
+++ b/tests/testscreenconfig.cpp
@@ -68,7 +68,7 @@ void testScreenConfig::singleOutput()
     Output *output = config->outputs().take(1);
 
     QCOMPARE(output->name(), QString("LVDS1"));
-    QCOMPARE(output->type(), QString("LVDS"));
+    QCOMPARE(output->type(), Output::Panel);
     QCOMPARE(output->modes().count(), 3);
     QCOMPARE(output->pos(), QPoint(0, 0));
     QCOMPARE(output->currentModeId(), QLatin1String("3"));
@@ -117,7 +117,7 @@ void testScreenConfig::multiOutput()
     Output *output = config->outputs().take(2);
 
     QCOMPARE(output->name(), QString("HDMI1"));
-    QCOMPARE(output->type(), QString("HDMI"));
+    QCOMPARE(output->type(), Output::HDMI);
     QCOMPARE(output->modes().count(), 4);
     QCOMPARE(output->pos(), QPoint(0, 0));
     QCOMPARE(output->currentModeId(), QLatin1String("4"));
diff --git a/tests/testxrandr.cpp b/tests/testxrandr.cpp
index 83fd5a7..13f5ec7 100644
--- a/tests/testxrandr.cpp
+++ b/tests/testxrandr.cpp
@@ -56,7 +56,7 @@ void testXRandR::singleOutput()
     Output *output = config->outputs().take(327);
 
     QCOMPARE(output->name(), QString("default"));
-    QCOMPARE(output->type(), QString("unknown"));
+    QCOMPARE(output->type(), Output::Unknown);
     QCOMPARE(output->modes().count(), 15);
     QCOMPARE(output->pos(), QPoint(0, 0));
     QCOMPARE(output->currentModeId(), QLatin1String("338"));

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic