mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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:
parent
fd8bd9d5c7
commit
4a50badb57
4 changed files with 9 additions and 9 deletions
|
@ -213,7 +213,7 @@ bool device::operator<(const device &a) const
|
||||||
return std::tie(deviceId, model) < std::tie(a.deviceId, a.model);
|
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, {}, {}, {}});
|
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;
|
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);
|
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)
|
if (m.empty() || d == 0)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -26,7 +26,7 @@ const char *get_dc_nickname(const struct divecomputer *dc);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <QVector>
|
#include <vector>
|
||||||
struct device {
|
struct device {
|
||||||
bool operator==(const device &a) const;
|
bool operator==(const device &a) const;
|
||||||
bool operator!=(const device &a) const;
|
bool operator!=(const device &a) const;
|
||||||
|
@ -41,7 +41,7 @@ struct device {
|
||||||
|
|
||||||
struct device_table {
|
struct device_table {
|
||||||
// Keep the dive computers in a vector sorted by (model, deviceId)
|
// Keep the dive computers in a vector sorted by (model, deviceId)
|
||||||
QVector<device> devices;
|
std::vector<device> devices;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct device_table device_table;
|
extern struct device_table device_table;
|
||||||
|
|
|
@ -11,7 +11,7 @@ DiveComputerModel::DiveComputerModel(QObject *parent) : CleanerTableModel(parent
|
||||||
|
|
||||||
QVariant DiveComputerModel::data(const QModelIndex &index, int role) const
|
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();
|
return QVariant();
|
||||||
const device &node = dcs[index.row()];
|
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)
|
bool DiveComputerModel::setData(const QModelIndex &index, const QVariant &value, int)
|
||||||
{
|
{
|
||||||
// We should test if the role == Qt::EditRole
|
// 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;
|
return false;
|
||||||
|
|
||||||
device &node = dcs[index.row()];
|
device &node = dcs[index.row()];
|
||||||
|
@ -66,10 +66,10 @@ bool DiveComputerModel::setData(const QModelIndex &index, const QVariant &value,
|
||||||
|
|
||||||
void DiveComputerModel::remove(const QModelIndex &index)
|
void DiveComputerModel::remove(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
if (index.row() < 0 || index.row() >= dcs.size())
|
if (index.row() < 0 || index.row() >= (int)dcs.size())
|
||||||
return;
|
return;
|
||||||
beginRemoveRows(QModelIndex(), index.row(), index.row());
|
beginRemoveRows(QModelIndex(), index.row(), index.row());
|
||||||
dcs.remove(index.row());
|
dcs.erase(dcs.begin() + index.row());
|
||||||
endRemoveRows();
|
endRemoveRows();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ slots:
|
||||||
void remove(const QModelIndex &index);
|
void remove(const QModelIndex &index);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QVector<device> dcs;
|
std::vector<device> dcs;
|
||||||
};
|
};
|
||||||
|
|
||||||
class DiveComputerSortedModel : public QSortFilterProxyModel {
|
class DiveComputerSortedModel : public QSortFilterProxyModel {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue