#include "remote.h"
-typedef QList <Remote> RemoteList;
+typedef QList <Remote *> RemoteList;
// Mfgname
typedef QMap <QString, RemoteList> MfgMap;
// Initial letter
RemoteDBMgr::~RemoteDBMgr()
{
+ foreach(MfgMap mfgMap, db.values()) {
+ foreach(RemoteList list, mfgMap.values()) {
+ qDeleteAll(list);
+ }
+ }
}
void RemoteDBMgr::getDBAsync()
&& 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());
}
}
}
#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);
//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);
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
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));
}
}
static_cast<RemoteListWidgetItem *>(modelList->currentItem());
if (currentModel)
{
- currentModel->remote().saveToFile();
+ currentModel->remote()->saveToFile();
}
}