New implementation
authorJari Jarvi <t7jaja00@students.oamk.fi>
Mon, 21 Jun 2010 13:17:51 +0000 (16:17 +0300)
committerJari Jarvi <t7jaja00@students.oamk.fi>
Mon, 21 Jun 2010 13:17:51 +0000 (16:17 +0300)
src/remotedb.h
src/remotedbmgr.cpp
src/remotelistwidgetitem.cpp
src/remotelistwidgetitem.h
src/selectremotedlg.cpp

index c03189e..c234000 100644 (file)
@@ -7,7 +7,7 @@
 
 #include "remote.h"
 
-typedef QList <Remote> RemoteList;
+typedef QList <Remote *> RemoteList;
         // Mfgname
 typedef QMap <QString, RemoteList> MfgMap;
         // Initial letter
index b4d6fe6..89043a9 100644 (file)
@@ -18,6 +18,11 @@ RemoteDBMgr::RemoteDBMgr()
 
 RemoteDBMgr::~RemoteDBMgr()
 {
+    foreach(MfgMap mfgMap, db.values()) {
+        foreach(RemoteList list, mfgMap.values()) {
+            qDeleteAll(list);
+        }
+    }
 }
 
 void RemoteDBMgr::getDBAsync()
@@ -90,10 +95,10 @@ RemoteList RemoteDBMgr::parseRemotes(QDomElement &mfgEl)
                 && modelEl.hasAttribute("name")
                 && modelEl.hasAttribute("rating")
                 && modelEl.hasAttribute("vote_count")) {
-                remotes << Remote(modelEl.attribute("name"),
-                                  modelEl.attribute("id"),
-                                  modelEl.attribute("rating").toInt(),
-                                  modelEl.attribute("vote_count").toInt());
+                remotes << new Remote(modelEl.attribute("name"),
+                                      modelEl.attribute("id"),
+                                      modelEl.attribute("rating").toInt(),
+                                      modelEl.attribute("vote_count").toInt());
             }
         }
     }
index d810339..26bac27 100644 (file)
@@ -1,7 +1,7 @@
 #include <QListWidget>
 #include "remotelistwidgetitem.h"
 
-RemoteListWidgetItem::RemoteListWidgetItem(Remote remote, QListWidget *parent)
+RemoteListWidgetItem::RemoteListWidgetItem(Remote *remote, QListWidget *parent)
     : QListWidgetItem(parent, 1337), m_remote(remote)
 {
     setFlags(Qt::NoItemFlags|Qt::ItemIsSelectable|Qt::ItemIsEnabled);
@@ -10,8 +10,8 @@ RemoteListWidgetItem::RemoteListWidgetItem(Remote remote, QListWidget *parent)
 //overrides QListWidgetItem::data
 QVariant RemoteListWidgetItem::data(int role) const
 {
-    QString str = m_remote.name() 
-        + " (" + QString::number(m_remote.rating()) + ")";
+    QString str = m_remote->name() 
+        + " (" + QString::number(m_remote->rating()) + ")";
     switch (role) {
         case Qt::DisplayRole:
             return QVariant(str);
index c23ba4a..5bee00c 100644 (file)
@@ -12,14 +12,14 @@ class QListWidget;
 class RemoteListWidgetItem : public QListWidgetItem
 {
 public:
-    RemoteListWidgetItem(Remote remote, QListWidget *parent = 0);
-    Remote remote() const { return m_remote; }
+    RemoteListWidgetItem(Remote *remote, QListWidget *parent = 0);
+    Remote *remote() const { return m_remote; }
 
     //overrides QListWidgetItem::data
     QVariant data(int role) const;
 
 private:
-   Remote m_remote;
+   Remote *m_remote;
 };
 
 #endif
index 7ac38c8..9b6e46a 100644 (file)
@@ -88,9 +88,9 @@ void SelectRemoteDlg::mfgItemChanged(QListWidgetItem *current,
     modelList->clear();
     if (current)
     {
-        QList <Remote> remotes =
+        RemoteList remotes =
            (*remoteDB)[alphabetList->currentItem()->text()][current->text()];
-        foreach(Remote remote, remotes) {
+        foreach(Remote *remote, remotes) {
             modelList->addItem(new RemoteListWidgetItem(remote));
         }
     }
@@ -102,7 +102,7 @@ void SelectRemoteDlg::downloadRemote()
         static_cast<RemoteListWidgetItem *>(modelList->currentItem());
     if (currentModel)
     {
-        currentModel->remote().saveToFile();
+        currentModel->remote()->saveToFile();
     }
 }