Joakim,

Acked,
But I do think this should be different controllers. But anyway, this looks
good and I'll probably change it on the future just to make qmlmanager a
managed, not a God class.

Tomaz
Em 20 de mai de 2016 13:50, "Joakim Bygdell" <j.bygd...@gmail.com> escreveu:

In order to get autocomplete to work on manual dive add
we apparently need a separate init function.

Signed-off-by: Joakim Bygdell <j.bygd...@gmail.com>
---
 mobile-widgets/qmlmanager.cpp | 51
+++++++++++++++++++++++++++++++++++++++++++
 mobile-widgets/qmlmanager.h   |  7 ++++++
 2 files changed, 58 insertions(+)

diff --git a/mobile-widgets/qmlmanager.cpp b/mobile-widgets/qmlmanager.cpp
index 82ea319..1c3e121 100644
--- a/mobile-widgets/qmlmanager.cpp
+++ b/mobile-widgets/qmlmanager.cpp
@@ -1337,3 +1337,54 @@ void QMLManager::quit()
                saveChangesCloud(false);
        QApplication::quit();
 }
+
+QStringList QMLManager::suitInit() const
+{
+       QStringList suits;
+       struct dive *d;
+       int i = 0;
+       for_each_dive (i, d) {
+               QString temp = d->suit;
+               if (!temp.isEmpty())
+                       suits << d->suit;
+       }
+       suits.removeDuplicates();
+       suits.sort();
+       return suits;
+}
+
+QStringList QMLManager::buddyInit() const
+{
+       QStringList buddies;
+       struct dive *d;
+       int i = 0;
+       for_each_dive (i, d) {
+               QString temp = d->buddy;
+               if (!temp.isEmpty() && !temp.contains(",")){
+                       buddies << d->buddy;
+               }
+               else if (!temp.isEmpty()){
+                       QRegExp sep("(,\\s)");
+                       QStringList tempList = temp.split(sep);
+                       buddies << tempList;
+               }
+       }
+       buddies.removeDuplicates();
+       buddies.sort();
+       return buddies;
+}
+
+QStringList QMLManager::divemasterInit() const
+{
+       QStringList divemasters;
+       struct dive *d;
+       int i = 0;
+       for_each_dive (i, d) {
+               QString temp = d->divemaster;
+               if (!temp.isEmpty())
+                       divemasters << d->divemaster;
+       }
+       divemasters.removeDuplicates();
+       divemasters.sort();
+       return divemasters;
+}
diff --git a/mobile-widgets/qmlmanager.h b/mobile-widgets/qmlmanager.h
index 906e7b0..10ff0ba 100644
--- a/mobile-widgets/qmlmanager.h
+++ b/mobile-widgets/qmlmanager.h
@@ -29,6 +29,9 @@ class QMLManager : public QObject {
        Q_PROPERTY(bool syncToCloud READ syncToCloud WRITE setSyncToCloud
NOTIFY syncToCloudChanged)
        Q_PROPERTY(int updateSelectedDive READ updateSelectedDive WRITE
setUpdateSelectedDive NOTIFY updateSelectedDiveChanged)
        Q_PROPERTY(int selectedDiveTimestamp READ selectedDiveTimestamp
WRITE setSelectedDiveTimestamp NOTIFY selectedDiveTimestampChanged)
+       Q_PROPERTY(QStringList suitInit READ suitInit CONSTANT)
+       Q_PROPERTY(QStringList buddyInit READ buddyInit CONSTANT)
+       Q_PROPERTY(QStringList divemasterInit READ divemasterInit CONSTANT)

 public:
        QMLManager();
@@ -97,6 +100,10 @@ public:
        typedef void (QMLManager::*execute_function_type)();
        DiveListSortModel *dlSortModel;

+       QStringList suitInit() const;
+       QStringList buddyInit() const;
+       QStringList divemasterInit() const;
+
 public slots:
        void applicationStateChanged(Qt::ApplicationState state);
        void savePreferences();
--
2.5.4 (Apple Git-61)

_______________________________________________
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
_______________________________________________
subsurface mailing list
subsurface@subsurface-divelog.org
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to