New architecture
authorTorste Aikio <zokier@zokier.laptop>
Fri, 18 Jun 2010 07:04:23 +0000 (10:04 +0300)
committerTorste Aikio <zokier@zokier.laptop>
Fri, 18 Jun 2010 07:04:23 +0000 (10:04 +0300)
13 files changed:
src/engine.cpp [deleted file]
src/engine.h [deleted file]
src/iengine.h [deleted file]
src/iremote.h [deleted file]
src/model.h [deleted file]
src/netio.cpp [deleted file]
src/netio.h [deleted file]
src/remote.h
src/remotedb.h [new file with mode: 0644]
src/remotedbmgr.h [new file with mode: 0644]
src/remotedbparser.cpp [deleted file]
src/remotedbparser.h [deleted file]
src/remotelistwidgetitem.h [new file with mode: 0644]

diff --git a/src/engine.cpp b/src/engine.cpp
deleted file mode 100644 (file)
index a449b85..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "engine.h"
-#include "remote.h"
-#include "iremote.h"
-#include "remotedbparser.h"
-#include "netio.h"
-
-#include <QDomDocument>
-
-Engine::Engine()
-    : netIO(new NetIO())
-    , currentRemote(NULL)
-{
-}
-
-Engine::~Engine()
-{
-    delete netIO;
-    if (currentRemote)
-        delete currentRemote;
-}
-
-void Engine::setRemote(const QString &id)
-{
-    if (currentRemote)
-        delete currentRemote;
-       
-    currentRemote = new Remote(id, netIO);
-}
-
-RemoteDbParser Engine::availableRemotes()
-{
-    // TODO download db.xml
-    
-    QDomDocument doc;
-    return RemoteDbParser(doc);
-}
-
-IRemote *Engine::remote()
-{
-    return currentRemote;
-}
-
-
-
diff --git a/src/engine.h b/src/engine.h
deleted file mode 100644 (file)
index cbee93b..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _ENGINE_H_
-#define _ENGINE_H_
-
-#include "iengine.h"
-
-class NetIO;
-class Remote;
-class IRemote;
-class RemoteDbParser;
-
-class Engine : public IEngine
-{
-public:
-    Engine();
-    ~Engine();
-    RemoteDbParser availableRemotes();
-    void setRemote(const QString &id);
-    IRemote *remote();
-
-private:
-    NetIO *netIO;
-    Remote *currentRemote;
-};
-
-#endif // _ENGINE_H_
-
-
diff --git a/src/iengine.h b/src/iengine.h
deleted file mode 100644 (file)
index 591fe85..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef _IENGINE_H_
-#define _IENGINE_H_
-
-#include <QString>
-
-class IRemote;
-class RemoteDbParser;
-
-class IEngine
-{
-public:
-    IEngine() {}
-    virtual ~IEngine() {}
-    virtual RemoteDbParser availableRemotes() = 0;
-    virtual void setRemote(const QString &id) = 0;
-    virtual IRemote *remote() = 0;
-};
-
-#endif // _IENGINE_H_
-
diff --git a/src/iremote.h b/src/iremote.h
deleted file mode 100644 (file)
index 9ad96fd..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef _IREMOTE_H_
-#define _IREMOTE_H_
-
-#include <QObject>
-
-class IRemote : public QObject
-{
-    Q_OBJECT
-
-public:
-    enum RemoteCmd
-    {
-        VOLUMEUP,
-        VOLUMEDOWN,
-        CHANNELUP,
-        CHANNELDOWN,
-        POWER,
-        MUTE
-    };
-
-    IRemote() {}
-    virtual ~IRemote() {}
-
-    virtual void updateRating() = 0;
-    virtual void sendRating(bool) = 0;
-    virtual void sendCmd(RemoteCmd) = 0;
-signals:
-    void ratingChanged(int rating);
-};
-
-#endif // _IREMOTE_H_
-
diff --git a/src/model.h b/src/model.h
deleted file mode 100644 (file)
index 638644a..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _MODEL_H_
-#define _MODEL_H_
-
-struct Model
-{
-    Model()
-    {
-    }
-
-    Model(const QString &name, const QString &id)
-        : name(name)
-        , id(id)
-    {
-    }
-
-    Model(const Model &m)
-        : name(m.name)
-        , id(m.id)
-    {
-    }
-
-    QString name;
-    QString id;
-};
-
-#endif // _MODEL_H_
-
diff --git a/src/netio.cpp b/src/netio.cpp
deleted file mode 100644 (file)
index 2a5a164..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <QString>
-
-#include "netio.h"
-
-NetIO::NetIO()
-{
-}
-
-NetIO::~NetIO()
-{
-}
-
-void NetIO::ratingById(const QString &id)
-{
-    emit ratingDownloaded(1234);
-}
-
-
diff --git a/src/netio.h b/src/netio.h
deleted file mode 100644 (file)
index 94745d7..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef _NETIO_H_
-#define _NETIO_H_
-
-#include <QObject>
-
-class QString;
-
-class NetIO : public QObject
-{
-    Q_OBJECT
-
-public:
-    NetIO();
-    ~NetIO();
-
-    void ratingById(const QString &id);
-
-signals:
-    void ratingDownloaded(int);
-};
-
-#endif // _NETIO_H_
-
index 3840360..f6abb44 100644 (file)
@@ -1,43 +1,35 @@
-#ifndef _REMOTE_H_
-#define _REMOTE_H_
-
-#include "iremote.h"
-#include "model.h"
+#ifndef REMOTE_H
+#define REMOTE_H
 
+#include <QObject>
 #include <QString>
 
-class IrCtrl;
-class NetIO;
-class QSettings;
+namespace Rating {
+    typedef bool Rating;
+    Rating Up = true;
+    Rating Down = false;
+}
 
-class Remote : public IRemote
+class Remote
 {
+    Q_OBJECT
 public:
-    Remote();
-    Remote(const QString &id, NetIO *);
-    ~Remote();
-
-    const QString &id() const;
-    void setId(const QString &id);
-    void setNetIO(NetIO *);
-
-    // visible for gui
-    void updateRating();
-    void sendRating(bool good);
-    void sendCmd(RemoteCmd);
-
-private:
-    Remote(const Remote &remote);
-
-private:
-    bool rated;
-    Model model;
-    QSettings *settings;
-    IrCtrl *irCtrl;
-    NetIO *netIO;
-};
+    Remote(const QString &name);
 
-#endif // _REMOTE_H_
+    //getters
+    QString name() const;
+    QString mfg() const;
+    int rating() const;
+    int voteCount() const;
 
+public slots:
+    void saveToFile();
+    void updateInfo();
+    void sendRating(Rating::Rating);
+
+signals:
+    void infoUpdated();
+};
 
+#endif
 
diff --git a/src/remotedb.h b/src/remotedb.h
new file mode 100644 (file)
index 0000000..26fc559
--- /dev/null
@@ -0,0 +1,15 @@
+#ifndef REMOTEDB_H
+#define REMOTEDB_H
+
+#include <QList>
+#include <QMap>
+#include <QString>
+
+#include "remote.h"
+
+typedef QList <Remote> RemoteList;
+typedef QMap <QString, RemoteList> MfgMap;
+typedef QMap <QString, MfgMap> RemoteDB;
+
+#endif
+
diff --git a/src/remotedbmgr.h b/src/remotedbmgr.h
new file mode 100644 (file)
index 0000000..26b36bf
--- /dev/null
@@ -0,0 +1,22 @@
+#ifndef REMOTEDBMGR_H
+#define REMOTEDBMGR_H
+
+#include <QObject>
+
+#include "remotedb.h"
+
+class RemoteDBMgr : QObject
+{
+    Q_OBJECT
+public:
+    RemoteDBMgr();
+    ~RemoteDBMgr();
+
+    void getDbAsync();
+
+signals:
+    void dbReady(RemoteDB*);
+};
+
+#endif
+
diff --git a/src/remotedbparser.cpp b/src/remotedbparser.cpp
deleted file mode 100644 (file)
index e5068e5..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#include "remotedbparser.h"
-
-#include <QFile> 
-#include <QDomElement> 
-#include <QDomNodeList> 
-#include <QDebug> 
-
-RemoteDbParser::RemoteDbParser()
-    : valid(false)
-{
-}
-
-RemoteDbParser::RemoteDbParser(const RemoteDbParser &r)
-    : valid(r.valid)
-    , mfgMap(r.mfgMap)
-    , modelMap(r.modelMap)
-{
-}
-
-RemoteDbParser::RemoteDbParser(QDomDocument &doc)
-{
-    parse(doc);
-}
-
-RemoteDbParser::~RemoteDbParser()
-{
-}
-
-void RemoteDbParser::setContent(QDomDocument &doc)
-{
-    mfgMap.clear();
-    modelMap.clear();
-    parse(doc);
-}
-
-bool RemoteDbParser::isValid()
-{
-    return valid;
-}
-
-QStringList RemoteDbParser::letters()
-{
-    return mfgMap.keys();
-}
-
-QStringList RemoteDbParser::manufacturers(const QString &letter)
-{
-    return mfgMap.value(letter);
-}
-
-QList<Model> RemoteDbParser::models(const QString &manufacturer)
-{
-    return modelMap.value(manufacturer);
-}
-
-void RemoteDbParser::parse(QDomDocument &doc)
-{
-    QDomNodeList chars = doc.elementsByTagName("char");
-
-    for (int i = 0; i < chars.size(); ++i)
-    {
-        QDomElement charEl = chars.at(i).toElement();
-        if (!charEl.isNull())
-        {
-            if (charEl.hasAttribute("id"))
-                mfgMap.insert(charEl.attribute("id").at(0), parseMfgs(charEl));
-        }
-    }
-
-    // TODO: more error handling
-    valid = (mfgMap.size() > 0 &&
-             modelMap.size() > 0);
-}
-
-QStringList RemoteDbParser::parseMfgs(QDomElement &charEl)
-{
-    QStringList mfgStrings;
-    QDomNodeList mfgs = charEl.elementsByTagName("mfg");
-
-    for (int i = 0; i < mfgs.size(); ++i)
-    {
-        QDomElement mfgEl = mfgs.at(i).toElement();
-        if (!mfgEl.isNull())
-        {
-            if (mfgEl.hasAttribute("id"))
-            {
-                mfgStrings.append(mfgEl.attribute("id"));
-                modelMap.insert(mfgStrings.last(), parseModels(mfgEl));
-            }
-        }
-    }
-    return mfgStrings;
-}
-
-QList<Model> RemoteDbParser::parseModels(QDomElement &mfgEl)
-{
-    QList<Model> modelList;
-    QDomNodeList models = mfgEl.elementsByTagName("model");
-
-    for (int i = 0; i < models.size(); ++i)
-    {
-        QDomElement modelEl = models.at(i).toElement();
-        if (!modelEl.isNull())
-        {
-            if (modelEl.hasAttribute("name") && modelEl.hasAttribute("id"))
-            {
-                modelList.append(Model(modelEl.attribute("name"),
-                                       modelEl.attribute("id")));
-            }
-        }
-    }
-    return modelList;
-}
-
diff --git a/src/remotedbparser.h b/src/remotedbparser.h
deleted file mode 100644 (file)
index 2732df0..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef _REMOTEDBPARSER_H_
-#define _REMOTEDBPARSER_H_
-
-#include <QDomDocument>
-#include <QStringList>
-#include <QMap>
-#include <QList>
-#include "model.h"
-
-class RemoteDbParser
-{
-public:
-    RemoteDbParser();
-    RemoteDbParser(const RemoteDbParser &);
-    RemoteDbParser(QDomDocument &);
-    ~RemoteDbParser();
-    
-    void setContent(QDomDocument &);
-
-    // Returns false if document is not set or it's invalid
-    bool isValid();
-
-    QStringList letters();
-    QStringList manufacturers(const QString &letter);
-    QList<Model> models(const QString &manufacturer);
-
-private:
-    void parse(QDomDocument &doc);
-    QStringList parseMfgs(QDomElement &charEl);
-    QList<Model> parseModels(QDomElement &mfgEl);
-    
-private:
-    bool valid;
-    QMap<QString, QStringList> mfgMap;
-    QMap<QString, QList<Model> > modelMap;
-};
-
-#endif // _REMOTEDBPARSER_H_
-
-
diff --git a/src/remotelistwidgetitem.h b/src/remotelistwidgetitem.h
new file mode 100644 (file)
index 0000000..b6366a0
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef REMOTELISTWIDGETITEM_H
+#define REMOTELISTWIDGETITEM_H
+
+#include <QListWidgetItem>
+#include <QVariant>
+#include <QWidget>
+
+#include "remote.h"
+
+class RemoteListWidgetItem : public QListWidgetItem
+{
+public:
+    RemoteListWidgetItem(Remote remote, QWidget *parent = 0);
+    Remote getRemote();
+
+    //overrides QListWidgetItem::data
+    QVariant data(int role) const;
+
+private:
+   Remote remote;
+};
+
+#endif
+