summaryrefslogtreecommitdiffstats
path: root/qt-models
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-05-28 16:52:13 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-05-29 14:10:50 -0700
commita0f3c9992c0f9d2134742b5ba7fd532094c1a865 (patch)
treebc307939720b62793da3c78043eb0d1023472a6f /qt-models
parent32b0afa3e7f4b0636b65119d63e9f398b9f4bfca (diff)
downloadsubsurface-a0f3c9992c0f9d2134742b5ba7fd532094c1a865.tar.gz
Move WeigthSystem Info model to qt-models
This is another effort to make it easyer for the mobile interface of Subsurface. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-models')
-rw-r--r--qt-models/models.cpp124
-rw-r--r--qt-models/models.h26
-rw-r--r--qt-models/weigthsysteminfomodel.cpp126
-rw-r--r--qt-models/weigthsysteminfomodel.h32
4 files changed, 159 insertions, 149 deletions
diff --git a/qt-models/models.cpp b/qt-models/models.cpp
index b2d317456..5b0fc1a0f 100644
--- a/qt-models/models.cpp
+++ b/qt-models/models.cpp
@@ -16,7 +16,7 @@
#include "display.h"
#include "color.h"
#include "cleanertablemodel.h"
-
+#include "weigthsysteminfomodel.h"
#include <QCoreApplication>
#include <QDebug>
#include <QDir>
@@ -319,128 +319,6 @@ void WeightModel::updateDive()
}
}
-WSInfoModel *WSInfoModel::instance()
-{
- static QScopedPointer<WSInfoModel> self(new WSInfoModel());
- return self.data();
-}
-
-bool WSInfoModel::insertRows(int row, int count, const QModelIndex &parent)
-{
- beginInsertRows(parent, rowCount(), rowCount());
- rows += count;
- endInsertRows();
- return true;
-}
-
-bool WSInfoModel::setData(const QModelIndex &index, const QVariant &value, int role)
-{
- struct ws_info_t *info = &ws_info[index.row()];
- switch (index.column()) {
- case DESCRIPTION:
- info->name = strdup(value.toByteArray().data());
- break;
- case GR:
- info->grams = value.toInt();
- break;
- }
- emit dataChanged(index, index);
- return true;
-}
-
-void WSInfoModel::clear()
-{
-}
-
-QVariant WSInfoModel::data(const QModelIndex &index, int role) const
-{
- QVariant ret;
- if (!index.isValid()) {
- return ret;
- }
- struct ws_info_t *info = &ws_info[index.row()];
-
- int gr = info->grams;
- switch (role) {
- case Qt::FontRole:
- ret = defaultModelFont();
- break;
- case Qt::DisplayRole:
- case Qt::EditRole:
- switch (index.column()) {
- case GR:
- ret = gr;
- break;
- case DESCRIPTION:
- ret = gettextFromC::instance()->tr(info->name);
- break;
- }
- break;
- }
- return ret;
-}
-
-int WSInfoModel::rowCount(const QModelIndex &parent) const
-{
- return rows + 1;
-}
-
-const QString &WSInfoModel::biggerString() const
-{
- return biggerEntry;
-}
-
-WSInfoModel::WSInfoModel() : rows(-1)
-{
- setHeaderDataStrings(QStringList() << tr("Description") << tr("kg"));
- struct ws_info_t *info = ws_info;
- for (info = ws_info; info->name; info++, rows++) {
- QString wsInfoName = gettextFromC::instance()->tr(info->name);
- if (wsInfoName.count() > biggerEntry.count())
- biggerEntry = wsInfoName;
- }
-
- if (rows > -1) {
- beginInsertRows(QModelIndex(), 0, rows);
- endInsertRows();
- }
-}
-
-void WSInfoModel::updateInfo()
-{
- struct ws_info_t *info = ws_info;
- beginRemoveRows(QModelIndex(), 0, this->rows);
- endRemoveRows();
- rows = -1;
- for (info = ws_info; info->name; info++, rows++) {
- QString wsInfoName = gettextFromC::instance()->tr(info->name);
- if (wsInfoName.count() > biggerEntry.count())
- biggerEntry = wsInfoName;
- }
-
- if (rows > -1) {
- beginInsertRows(QModelIndex(), 0, rows);
- endInsertRows();
- }
-}
-
-void WSInfoModel::update()
-{
- if (rows > -1) {
- beginRemoveRows(QModelIndex(), 0, rows);
- endRemoveRows();
- rows = -1;
- }
- struct ws_info_t *info = ws_info;
- for (info = ws_info; info->name; info++, rows++)
- ;
-
- if (rows > -1) {
- beginInsertRows(QModelIndex(), 0, rows);
- endInsertRows();
- }
-}
-
//#################################################################################################
//#
//# Tree Model - a Basic Tree Model so I don't need to kill myself repeating this for every model.
diff --git a/qt-models/models.h b/qt-models/models.h
index 9e18ba26d..70e34e65f 100644
--- a/qt-models/models.h
+++ b/qt-models/models.h
@@ -21,32 +21,6 @@
#include "../divecomputer.h"
#include "cleanertablemodel.h"
-/* Encapsulate ws_info */
-class WSInfoModel : public CleanerTableModel {
- Q_OBJECT
-public:
- static WSInfoModel *instance();
-
- enum Column {
- DESCRIPTION,
- GR
- };
- WSInfoModel();
-
- /*reimp*/ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
- /*reimp*/ int rowCount(const QModelIndex &parent = QModelIndex()) const;
- /*reimp*/ bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
- /*reimp*/ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
- const QString &biggerString() const;
- void clear();
- void update();
- void updateInfo();
-
-private:
- int rows;
- QString biggerEntry;
-};
-
/* Retrieve the trash icon pixmap, common to most table models */
const QPixmap &trashIcon();
diff --git a/qt-models/weigthsysteminfomodel.cpp b/qt-models/weigthsysteminfomodel.cpp
new file mode 100644
index 000000000..1ddc2e940
--- /dev/null
+++ b/qt-models/weigthsysteminfomodel.cpp
@@ -0,0 +1,126 @@
+#include "weigthsysteminfomodel.h"
+#include "dive.h"
+#include "metrics.h"
+#include "gettextfromc.h"
+
+WSInfoModel *WSInfoModel::instance()
+{
+ static QScopedPointer<WSInfoModel> self(new WSInfoModel());
+ return self.data();
+}
+
+bool WSInfoModel::insertRows(int row, int count, const QModelIndex &parent)
+{
+ beginInsertRows(parent, rowCount(), rowCount());
+ rows += count;
+ endInsertRows();
+ return true;
+}
+
+bool WSInfoModel::setData(const QModelIndex &index, const QVariant &value, int role)
+{
+ struct ws_info_t *info = &ws_info[index.row()];
+ switch (index.column()) {
+ case DESCRIPTION:
+ info->name = strdup(value.toByteArray().data());
+ break;
+ case GR:
+ info->grams = value.toInt();
+ break;
+ }
+ emit dataChanged(index, index);
+ return true;
+}
+
+void WSInfoModel::clear()
+{
+}
+
+QVariant WSInfoModel::data(const QModelIndex &index, int role) const
+{
+ QVariant ret;
+ if (!index.isValid()) {
+ return ret;
+ }
+ struct ws_info_t *info = &ws_info[index.row()];
+
+ int gr = info->grams;
+ switch (role) {
+ case Qt::FontRole:
+ ret = defaultModelFont();
+ break;
+ case Qt::DisplayRole:
+ case Qt::EditRole:
+ switch (index.column()) {
+ case GR:
+ ret = gr;
+ break;
+ case DESCRIPTION:
+ ret = gettextFromC::instance()->tr(info->name);
+ break;
+ }
+ break;
+ }
+ return ret;
+}
+
+int WSInfoModel::rowCount(const QModelIndex &parent) const
+{
+ return rows + 1;
+}
+
+const QString &WSInfoModel::biggerString() const
+{
+ return biggerEntry;
+}
+
+WSInfoModel::WSInfoModel() : rows(-1)
+{
+ setHeaderDataStrings(QStringList() << tr("Description") << tr("kg"));
+ struct ws_info_t *info = ws_info;
+ for (info = ws_info; info->name; info++, rows++) {
+ QString wsInfoName = gettextFromC::instance()->tr(info->name);
+ if (wsInfoName.count() > biggerEntry.count())
+ biggerEntry = wsInfoName;
+ }
+
+ if (rows > -1) {
+ beginInsertRows(QModelIndex(), 0, rows);
+ endInsertRows();
+ }
+}
+
+void WSInfoModel::updateInfo()
+{
+ struct ws_info_t *info = ws_info;
+ beginRemoveRows(QModelIndex(), 0, this->rows);
+ endRemoveRows();
+ rows = -1;
+ for (info = ws_info; info->name; info++, rows++) {
+ QString wsInfoName = gettextFromC::instance()->tr(info->name);
+ if (wsInfoName.count() > biggerEntry.count())
+ biggerEntry = wsInfoName;
+ }
+
+ if (rows > -1) {
+ beginInsertRows(QModelIndex(), 0, rows);
+ endInsertRows();
+ }
+}
+
+void WSInfoModel::update()
+{
+ if (rows > -1) {
+ beginRemoveRows(QModelIndex(), 0, rows);
+ endRemoveRows();
+ rows = -1;
+ }
+ struct ws_info_t *info = ws_info;
+ for (info = ws_info; info->name; info++, rows++)
+ ;
+
+ if (rows > -1) {
+ beginInsertRows(QModelIndex(), 0, rows);
+ endInsertRows();
+ }
+}
diff --git a/qt-models/weigthsysteminfomodel.h b/qt-models/weigthsysteminfomodel.h
new file mode 100644
index 000000000..757f4eb03
--- /dev/null
+++ b/qt-models/weigthsysteminfomodel.h
@@ -0,0 +1,32 @@
+#ifndef WEIGTHSYSTEMINFOMODEL_H
+#define WEIGHTSYSTEMINFOMODEL_H
+
+#include "cleanertablemodel.h"
+
+/* Encapsulate ws_info */
+class WSInfoModel : public CleanerTableModel {
+ Q_OBJECT
+public:
+ static WSInfoModel *instance();
+
+ enum Column {
+ DESCRIPTION,
+ GR
+ };
+ WSInfoModel();
+
+ /*reimp*/ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ /*reimp*/ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ /*reimp*/ bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
+ /*reimp*/ bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
+ const QString &biggerString() const;
+ void clear();
+ void update();
+ void updateInfo();
+
+private:
+ int rows;
+ QString biggerEntry;
+};
+
+#endif