Replace CardInfo* and Carset* with smart pointers (#3053)

* Replace CardInfo* and Carset* with smart pointers

* fixes to help memory & c++11 stuff
This commit is contained in:
ctrlaltca 2018-02-02 18:52:47 +01:00 committed by Zach H
parent 3e418ba3c6
commit 517420cccb
37 changed files with 409 additions and 342 deletions

View file

@ -3,15 +3,13 @@
SetsModel::SetsModel(CardDatabase *_db, QObject *parent) : QAbstractTableModel(parent), sets(_db->getSetList())
{
sets.sortByKey();
foreach (CardSet *set, sets) {
for (const CardSetPtr &set : sets) {
if (set->getEnabled())
enabledSets.insert(set);
}
}
SetsModel::~SetsModel()
{
}
SetsModel::~SetsModel() = default;
int SetsModel::rowCount(const QModelIndex &parent) const
{
@ -26,7 +24,7 @@ QVariant SetsModel::data(const QModelIndex &index, int role) const
if (!index.isValid() || (index.column() >= NUM_COLS) || (index.row() >= rowCount()))
return QVariant();
CardSet *set = sets[index.row()];
CardSetPtr set = sets[index.row()];
if (index.column() == EnabledCol) {
switch (role) {
@ -146,7 +144,7 @@ bool SetsModel::dropMimeData(const QMimeData *data,
void SetsModel::toggleRow(int row, bool enable)
{
CardSet *temp = sets.at(row);
CardSetPtr temp = sets.at(row);
if (enable)
enabledSets.insert(temp);
@ -158,7 +156,7 @@ void SetsModel::toggleRow(int row, bool enable)
void SetsModel::toggleRow(int row)
{
CardSet *tmp = sets.at(row);
CardSetPtr tmp = sets.at(row);
if (tmp == nullptr)
return;
@ -176,7 +174,7 @@ void SetsModel::toggleAll(bool enabled)
enabledSets.clear();
if (enabled)
foreach (CardSet *set, sets)
for (CardSetPtr set : sets)
enabledSets.insert(set);
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
@ -185,7 +183,7 @@ void SetsModel::toggleAll(bool enabled)
void SetsModel::swapRows(int oldRow, int newRow)
{
beginRemoveRows(QModelIndex(), oldRow, oldRow);
CardSet *temp = sets.takeAt(oldRow);
CardSetPtr temp = sets.takeAt(oldRow);
endRemoveRows();
beginInsertRows(QModelIndex(), newRow, newRow);
@ -197,14 +195,14 @@ void SetsModel::swapRows(int oldRow, int newRow)
void SetsModel::sort(int column, Qt::SortOrder order)
{
QMap<QString, CardSet *> setMap;
QMap<QString, CardSetPtr> setMap;
int numRows = rowCount();
int row;
for (row = 0; row < numRows; ++row)
setMap.insertMulti(index(row, column).data(SetsModel::SortRole).toString(), sets.at(row));
QList<CardSet *> tmp = setMap.values();
QList<CardSetPtr> tmp = setMap.values();
sets.clear();
if (order == Qt::AscendingOrder) {
for (row = 0; row < tmp.size(); row++) {
@ -222,11 +220,11 @@ void SetsModel::sort(int column, Qt::SortOrder order)
void SetsModel::save(CardDatabase *db)
{
// order
for (int i = 0; i < sets.size(); i++)
for (unsigned int i = 0; i < sets.size(); i++)
sets[i]->setSortKey(i + 1);
// enabled sets
foreach (CardSet *set, sets)
for (const CardSetPtr &set : sets)
set->setEnabled(enabledSets.contains(set));
sets.sortByKey();
@ -242,7 +240,7 @@ void SetsModel::restore(CardDatabase *db)
// enabled sets
enabledSets.clear();
foreach (CardSet *set, sets) {
for (const CardSetPtr &set : sets) {
if (set->getEnabled())
enabledSets.insert(set);
}