cleanup: use std::vector in struct device_table

Since we converted from QString to std::string, let's also use
std::vector instead of QVector. We don't need COW semantics
and all the rigmarole. Let's try to keep Qt data structures
out of the core.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-10-05 10:12:12 +02:00 committed by Dirk Hohndel
parent fd8bd9d5c7
commit 4a50badb57
4 changed files with 9 additions and 9 deletions

View file

@ -213,7 +213,7 @@ bool device::operator<(const device &a) const
return std::tie(deviceId, model) < std::tie(a.deviceId, a.model);
}
static const device *getDCExact(const QVector<device> &dcs, const divecomputer *dc)
static const device *getDCExact(const std::vector<device> &dcs, const divecomputer *dc)
{
auto it = std::lower_bound(dcs.begin(), dcs.end(), device{dc->model, dc->deviceid, {}, {}, {}});
return it != dcs.end() && it->model == dc->model && it->deviceId == dc->deviceid ? &*it : NULL;
@ -258,7 +258,7 @@ void device::showchanges(const std::string &n, const std::string &s, const std::
qDebug("new firmware version %s for DC model %s deviceId 0x%x", f.c_str(), model.c_str(), deviceId);
}
static void addDC(QVector<device> &dcs, const std::string &m, uint32_t d, const std::string &n, const std::string &s, const std::string &f)
static void addDC(std::vector<device> &dcs, const std::string &m, uint32_t d, const std::string &n, const std::string &s, const std::string &f)
{
if (m.empty() || d == 0)
return;

View file

@ -26,7 +26,7 @@ const char *get_dc_nickname(const struct divecomputer *dc);
#ifdef __cplusplus
#include <string>
#include <QVector>
#include <vector>
struct device {
bool operator==(const device &a) const;
bool operator!=(const device &a) const;
@ -41,7 +41,7 @@ struct device {
struct device_table {
// Keep the dive computers in a vector sorted by (model, deviceId)
QVector<device> devices;
std::vector<device> devices;
};
extern struct device_table device_table;

View file

@ -11,7 +11,7 @@ DiveComputerModel::DiveComputerModel(QObject *parent) : CleanerTableModel(parent
QVariant DiveComputerModel::data(const QModelIndex &index, int role) const
{
if (index.row() < 0 || index.row() >= dcs.size())
if (index.row() < 0 || index.row() >= (int)dcs.size())
return QVariant();
const device &node = dcs[index.row()];
@ -55,7 +55,7 @@ Qt::ItemFlags DiveComputerModel::flags(const QModelIndex &index) const
bool DiveComputerModel::setData(const QModelIndex &index, const QVariant &value, int)
{
// We should test if the role == Qt::EditRole
if (index.row() < 0 || index.row() >= dcs.size())
if (index.row() < 0 || index.row() >= (int)dcs.size())
return false;
device &node = dcs[index.row()];
@ -66,10 +66,10 @@ bool DiveComputerModel::setData(const QModelIndex &index, const QVariant &value,
void DiveComputerModel::remove(const QModelIndex &index)
{
if (index.row() < 0 || index.row() >= dcs.size())
if (index.row() < 0 || index.row() >= (int)dcs.size())
return;
beginRemoveRows(QModelIndex(), index.row(), index.row());
dcs.remove(index.row());
dcs.erase(dcs.begin() + index.row());
endRemoveRows();
}

View file

@ -27,7 +27,7 @@ slots:
void remove(const QModelIndex &index);
private:
QVector<device> dcs;
std::vector<device> dcs;
};
class DiveComputerSortedModel : public QSortFilterProxyModel {