From: Jari Jarvi Date: Mon, 21 Jun 2010 13:17:51 +0000 (+0300) Subject: New implementation X-Git-Url: https://vcs.maemo.org/git/?p=irwi;a=commitdiff_plain;h=0ad3dff66b7065d734e7b94c249ec77031b80497 New implementation --- diff --git a/src/remotedb.h b/src/remotedb.h index c03189e..c234000 100644 --- a/src/remotedb.h +++ b/src/remotedb.h @@ -7,7 +7,7 @@ #include "remote.h" -typedef QList RemoteList; +typedef QList RemoteList; // Mfgname typedef QMap MfgMap; // Initial letter diff --git a/src/remotedbmgr.cpp b/src/remotedbmgr.cpp index b4d6fe6..89043a9 100644 --- a/src/remotedbmgr.cpp +++ b/src/remotedbmgr.cpp @@ -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()); } } } diff --git a/src/remotelistwidgetitem.cpp b/src/remotelistwidgetitem.cpp index d810339..26bac27 100644 --- a/src/remotelistwidgetitem.cpp +++ b/src/remotelistwidgetitem.cpp @@ -1,7 +1,7 @@ #include #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); diff --git a/src/remotelistwidgetitem.h b/src/remotelistwidgetitem.h index c23ba4a..5bee00c 100644 --- a/src/remotelistwidgetitem.h +++ b/src/remotelistwidgetitem.h @@ -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 diff --git a/src/selectremotedlg.cpp b/src/selectremotedlg.cpp index 7ac38c8..9b6e46a 100644 --- a/src/selectremotedlg.cpp +++ b/src/selectremotedlg.cpp @@ -88,9 +88,9 @@ void SelectRemoteDlg::mfgItemChanged(QListWidgetItem *current, modelList->clear(); if (current) { - QList 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(modelList->currentItem()); if (currentModel) { - currentModel->remote().saveToFile(); + currentModel->remote()->saveToFile(); } }