summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Joakim Bygdell <j.bygdell@gmail.com>2016-01-27 18:34:34 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-01-27 11:18:44 -0800
commit9342dedb265ed314e1657e82aef407176f7d1e04 (patch)
tree5597c80fe1138e7341c415337599903a644be646
parent4abe73ff2af49431d131f0d42fd10aa6f61b0125 (diff)
downloadsubsurface-9342dedb265ed314e1657e82aef407176f7d1e04.tar.gz
Move helper function to DiveObjectsHelper
As per Tomaz recomendation the helper functions from 19588ce and e072596 are moved from qmlmanager to DiveObjectsHelper. [Dirk Hohndel: merged with the latest code] Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-mobile/qml/DiveDetailsView.qml6
-rw-r--r--qt-mobile/qmlmanager.cpp36
-rw-r--r--qt-mobile/qmlmanager.h2
-rw-r--r--subsurface-core/subsurface-qt/DiveObjectHelper.cpp28
-rw-r--r--subsurface-core/subsurface-qt/DiveObjectHelper.h4
5 files changed, 34 insertions, 42 deletions
diff --git a/qt-mobile/qml/DiveDetailsView.qml b/qt-mobile/qml/DiveDetailsView.qml
index 7479ccb7a..d72f0e5a9 100644
--- a/qt-mobile/qml/DiveDetailsView.qml
+++ b/qt-mobile/qml/DiveDetailsView.qml
@@ -12,8 +12,6 @@ import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
Item {
id: detailsView
property int labelWidth: MobileComponents.Units.gridUnit * 10
- property string cylinder: manager.getCylinder(dive.id)
- property string weight: manager.getWeights(dive.id)
width: parent.width
height: mainLayout.implicitHeight + MobileComponents.Units.iconSizes.large
Rectangle {
@@ -168,7 +166,7 @@ Item {
}
MobileComponents.Label {
id: txtWeight
- text: weight
+ text: dive.sumWeight
Layout.fillWidth: true
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
}
@@ -180,7 +178,7 @@ Item {
}
MobileComponents.Label {
id: txtCylinder
- text: cylinder
+ text: dive.getCylinder
Layout.fillWidth: true
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
}
diff --git a/qt-mobile/qmlmanager.cpp b/qt-mobile/qmlmanager.cpp
index fb3c6de51..e80c2c082 100644
--- a/qt-mobile/qmlmanager.cpp
+++ b/qt-mobile/qmlmanager.cpp
@@ -708,39 +708,3 @@ QString QMLManager::getDate(const QString& diveId)
datestring = get_dive_date_string(d->when);
return datestring;
}
-
-QString QMLManager::getCylinder(const QString& diveId)
-{
- int dive_id = diveId.toInt();
- struct dive *d = get_dive_by_uniq_id(dive_id);
- QString cylinder;
- if (d){
- if (d->cylinder[1].type.description != NULL){
- cylinder = "Multiple";
- }
- else {
- cylinder = d->cylinder[0].type.description;
- }
- }
- return cylinder;
-}
-
-QString QMLManager::getWeights(const QString& diveId)
-{
- int dive_id = diveId.toInt();
- struct dive *d = get_dive_by_uniq_id(dive_id);
- int weight = 0;
- QString weights;
- if (d){
- for (int i = 0; i < MAX_WEIGHTSYSTEMS; i++)
- weight += d->weightsystem[i].weight.grams;
-
- if (informational_prefs.unit_system == IMPERIAL){
- weights = QString::number(grams_to_lbs(weight), 'f', 1) + " lbs";
- }
- else {
- weights = QString::number(weight/1000, 'f', 1) + " kg";
- }
- }
- return weights;
-}
diff --git a/qt-mobile/qmlmanager.h b/qt-mobile/qmlmanager.h
index b53af4d04..eb225a6cf 100644
--- a/qt-mobile/qmlmanager.h
+++ b/qt-mobile/qmlmanager.h
@@ -87,8 +87,6 @@ public slots:
QString getNumber(const QString& diveId);
QString getDate(const QString& diveId);
QString getCurrentPosition();
- QString getCylinder(const QString& diveId);
- QString getWeights(const QString& diveId);
void deleteGpsFix(quint64 when);
void refreshDiveList();
diff --git a/subsurface-core/subsurface-qt/DiveObjectHelper.cpp b/subsurface-core/subsurface-qt/DiveObjectHelper.cpp
index e29bd3802..b4460b4de 100644
--- a/subsurface-core/subsurface-qt/DiveObjectHelper.cpp
+++ b/subsurface-core/subsurface-qt/DiveObjectHelper.cpp
@@ -243,3 +243,31 @@ int DiveObjectHelper::rating() const
{
return m_dive->rating;
}
+
+QString DiveObjectHelper::sumWeight() const
+{
+ int sum = 0;
+ QString sumWeight;
+ for (int i = 0; i < MAX_WEIGHTSYSTEMS; i++){
+ sum += m_dive->weightsystem[i].weight.grams;
+ }
+ if (informational_prefs.unit_system == IMPERIAL){
+ sumWeight = QString::number(grams_to_lbs(sum), 'f', 1) + " lbs";
+ }
+ else {
+ sumWeight = QString::number(sum / 1000, 'f', 1) + " kg";
+ }
+ return sumWeight;
+}
+
+QString DiveObjectHelper::getCylinder() const
+{
+ QString getCylinder;
+ if (m_dive->cylinder[1].type.description != NULL){
+ getCylinder = QObject::tr("Multiple");
+ }
+ else {
+ getCylinder = m_dive->cylinder[0].type.description;
+ }
+ return getCylinder;
+}
diff --git a/subsurface-core/subsurface-qt/DiveObjectHelper.h b/subsurface-core/subsurface-qt/DiveObjectHelper.h
index 84c93465e..f44971fcd 100644
--- a/subsurface-core/subsurface-qt/DiveObjectHelper.h
+++ b/subsurface-core/subsurface-qt/DiveObjectHelper.h
@@ -32,6 +32,8 @@ class DiveObjectHelper : public QObject {
Q_PROPERTY(QString tripMeta READ tripMeta CONSTANT)
Q_PROPERTY(QString maxcns READ maxcns CONSTANT)
Q_PROPERTY(QString otu READ otu CONSTANT)
+ Q_PROPERTY(QString sumWeight READ sumWeight CONSTANT)
+ Q_PROPERTY(QString getCylinder READ getCylinder CONSTANT)
public:
DiveObjectHelper(struct dive *dive = NULL);
~DiveObjectHelper();
@@ -62,6 +64,8 @@ public:
QString tripMeta() const;
QString maxcns() const;
QString otu() const;
+ QString sumWeight() const;
+ QString getCylinder() const;
private:
struct dive *m_dive;