From 39d22cf3019e5abdae44ee03138d8c178abcab44 Mon Sep 17 00:00:00 2001 From: Torste Aikio Date: Fri, 18 Jun 2010 10:04:23 +0300 Subject: [PATCH] New architecture --- src/engine.cpp | 44 ----------------- src/engine.h | 27 ----------- src/iengine.h | 20 -------- src/iremote.h | 33 ------------- src/model.h | 27 ----------- src/netio.cpp | 18 ------- src/netio.h | 23 --------- src/remote.h | 58 ++++++++++------------ src/remotedb.h | 15 ++++++ src/remotedbmgr.h | 22 +++++++++ src/remotedbparser.cpp | 114 -------------------------------------------- src/remotedbparser.h | 40 ---------------- src/remotelistwidgetitem.h | 24 ++++++++++ 13 files changed, 86 insertions(+), 379 deletions(-) delete mode 100644 src/engine.cpp delete mode 100644 src/engine.h delete mode 100644 src/iengine.h delete mode 100644 src/iremote.h delete mode 100644 src/model.h delete mode 100644 src/netio.cpp delete mode 100644 src/netio.h create mode 100644 src/remotedb.h create mode 100644 src/remotedbmgr.h delete mode 100644 src/remotedbparser.cpp delete mode 100644 src/remotedbparser.h create mode 100644 src/remotelistwidgetitem.h diff --git a/src/engine.cpp b/src/engine.cpp deleted file mode 100644 index a449b85..0000000 --- a/src/engine.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "engine.h" -#include "remote.h" -#include "iremote.h" -#include "remotedbparser.h" -#include "netio.h" - -#include - -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 index cbee93b..0000000 --- a/src/engine.h +++ /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 index 591fe85..0000000 --- a/src/iengine.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _IENGINE_H_ -#define _IENGINE_H_ - -#include - -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 index 9ad96fd..0000000 --- a/src/iremote.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef _IREMOTE_H_ -#define _IREMOTE_H_ - -#include - -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 index 638644a..0000000 --- a/src/model.h +++ /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 index 2a5a164..0000000 --- a/src/netio.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include - -#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 index 94745d7..0000000 --- a/src/netio.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _NETIO_H_ -#define _NETIO_H_ - -#include - -class QString; - -class NetIO : public QObject -{ - Q_OBJECT - -public: - NetIO(); - ~NetIO(); - - void ratingById(const QString &id); - -signals: - void ratingDownloaded(int); -}; - -#endif // _NETIO_H_ - diff --git a/src/remote.h b/src/remote.h index 3840360..f6abb44 100644 --- a/src/remote.h +++ b/src/remote.h @@ -1,43 +1,35 @@ -#ifndef _REMOTE_H_ -#define _REMOTE_H_ - -#include "iremote.h" -#include "model.h" +#ifndef REMOTE_H +#define REMOTE_H +#include #include -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 index 0000000..26fc559 --- /dev/null +++ b/src/remotedb.h @@ -0,0 +1,15 @@ +#ifndef REMOTEDB_H +#define REMOTEDB_H + +#include +#include +#include + +#include "remote.h" + +typedef QList RemoteList; +typedef QMap MfgMap; +typedef QMap RemoteDB; + +#endif + diff --git a/src/remotedbmgr.h b/src/remotedbmgr.h new file mode 100644 index 0000000..26b36bf --- /dev/null +++ b/src/remotedbmgr.h @@ -0,0 +1,22 @@ +#ifndef REMOTEDBMGR_H +#define REMOTEDBMGR_H + +#include + +#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 index e5068e5..0000000 --- a/src/remotedbparser.cpp +++ /dev/null @@ -1,114 +0,0 @@ -#include "remotedbparser.h" - -#include -#include -#include -#include - -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 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 RemoteDbParser::parseModels(QDomElement &mfgEl) -{ - QList 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 index 2732df0..0000000 --- a/src/remotedbparser.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef _REMOTEDBPARSER_H_ -#define _REMOTEDBPARSER_H_ - -#include -#include -#include -#include -#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 models(const QString &manufacturer); - -private: - void parse(QDomDocument &doc); - QStringList parseMfgs(QDomElement &charEl); - QList parseModels(QDomElement &mfgEl); - -private: - bool valid; - QMap mfgMap; - QMap > modelMap; -}; - -#endif // _REMOTEDBPARSER_H_ - - diff --git a/src/remotelistwidgetitem.h b/src/remotelistwidgetitem.h new file mode 100644 index 0000000..b6366a0 --- /dev/null +++ b/src/remotelistwidgetitem.h @@ -0,0 +1,24 @@ +#ifndef REMOTELISTWIDGETITEM_H +#define REMOTELISTWIDGETITEM_H + +#include +#include +#include + +#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 + -- 1.7.9.5