This patches fixes a bug with date edition and also re-enables time edition.
It's not the widget that I'v envisioned but it's very hard to do that
using normal qt widgets as I need to paint on top of others.
From 8e7fd5e258ae3645b39d6b40972f0a51b2a4f58e Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <[email protected]>
Date: Thu, 26 Jun 2014 14:01:31 -0300
Subject: [PATCH 1/5] Headers cleanup.

Too much noise on the headers, this commit remove uneeded
headers when they are uneeded.

Signed-off-by: Tomaz Canabrava <[email protected]>
---
 pref.h                           |  2 ++
 qt-ui/about.h                    |  1 -
 qt-ui/divelogexportdialog.h      |  2 +-
 qt-ui/divelogimportdialog.h      |  2 +-
 qt-ui/divepicturewidget.cpp      |  9 ++-------
 qt-ui/divepicturewidget.h        |  5 -----
 qt-ui/diveplanner.h              |  3 ---
 qt-ui/downloadfromdivecomputer.h |  4 +++-
 qt-ui/globe.h                    |  5 ++++-
 qt-ui/maintab.cpp                |  1 -
 qt-ui/maintab.h                  |  5 +++--
 qt-ui/preferences.h              |  1 -
 qt-ui/printlayout.h              |  3 ++-
 qt-ui/printoptions.h             |  2 --
 qt-ui/simplewidgets.cpp          | 10 ----------
 qt-ui/subsurfacewebservices.h    |  1 -
 qt-ui/tagwidget.cpp              |  1 +
 qt-ui/tagwidget.h                |  3 ++-
 units.h                          |  1 +
 19 files changed, 22 insertions(+), 39 deletions(-)

diff --git a/pref.h b/pref.h
index 0764418..fe4278d 100644
--- a/pref.h
+++ b/pref.h
@@ -5,6 +5,8 @@
 extern "C" {
 #endif
 
+#include "units.h"
+
 /* can't use 'bool' for the boolean values - different size in C and C++ */
 typedef struct
 {
diff --git a/qt-ui/about.h b/qt-ui/about.h
index 0fa7d67..47423ae 100644
--- a/qt-ui/about.h
+++ b/qt-ui/about.h
@@ -2,7 +2,6 @@
 #define ABOUT_H
 
 #include <QDialog>
-#include <QPushButton>
 #include "ui_about.h"
 
 class SubsurfaceAbout : public QDialog {
diff --git a/qt-ui/divelogexportdialog.h b/qt-ui/divelogexportdialog.h
index 390cd39..1177505 100644
--- a/qt-ui/divelogexportdialog.h
+++ b/qt-ui/divelogexportdialog.h
@@ -2,7 +2,7 @@
 #define DIVELOGEXPORTDIALOG_H
 
 #include <QDialog>
-#include <QAbstractButton>
+class QAbstractButton;
 
 namespace Ui {
 	class DiveLogExportDialog;
diff --git a/qt-ui/divelogimportdialog.h b/qt-ui/divelogimportdialog.h
index fb44faa..a3dc0b2 100644
--- a/qt-ui/divelogimportdialog.h
+++ b/qt-ui/divelogimportdialog.h
@@ -2,7 +2,7 @@
 #define DIVELOGIMPORTDIALOG_H
 
 #include <QDialog>
-#include <QModelIndex>
+
 #include "../dive.h"
 #include "../divelist.h"
 
diff --git a/qt-ui/divepicturewidget.cpp b/qt-ui/divepicturewidget.cpp
index bf76d11..6849146 100644
--- a/qt-ui/divepicturewidget.cpp
+++ b/qt-ui/divepicturewidget.cpp
@@ -1,12 +1,7 @@
 #include "divepicturewidget.h"
 #include <dive.h>
-#include <qtconcurrentmap.h>
-#include <qdir.h>
-
-void DivePictureDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
-{
-	QStyledItemDelegate::paint(painter, option, index);
-}
+#include <QtConcurrentMap>
+#include <QDir>
 
 DivePictureModel *DivePictureModel::instance()
 {
diff --git a/qt-ui/divepicturewidget.h b/qt-ui/divepicturewidget.h
index 92df82c..fde7c5a 100644
--- a/qt-ui/divepicturewidget.h
+++ b/qt-ui/divepicturewidget.h
@@ -2,7 +2,6 @@
 #define DIVEPICTUREWIDGET_H
 
 #include <QAbstractTableModel>
-#include <QStyledItemDelegate>
 #include <QListView>
 #include <QThread>
 
@@ -30,10 +29,6 @@ private:
 	QHash<QString, PhotoHelper> stringPixmapCache;
 };
 
-class DivePictureDelegate : QStyledItemDelegate {
-	virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
-};
-
 class DivePictureWidget : public QListView {
 	Q_OBJECT
 public:
diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h
index 5955a5a..b0c3ef4 100644
--- a/qt-ui/diveplanner.h
+++ b/qt-ui/diveplanner.h
@@ -1,11 +1,8 @@
 #ifndef DIVEPLANNER_H
 #define DIVEPLANNER_H
 
-#include <QGraphicsView>
 #include <QGraphicsPathItem>
-#include <QDialog>
 #include <QAbstractTableModel>
-#include <QDateTime>
 
 #include "dive.h"
 
diff --git a/qt-ui/downloadfromdivecomputer.h b/qt-ui/downloadfromdivecomputer.h
index 3de102b..394766c 100644
--- a/qt-ui/downloadfromdivecomputer.h
+++ b/qt-ui/downloadfromdivecomputer.h
@@ -5,10 +5,12 @@
 #include <QThread>
 #include <QHash>
 #include <QMap>
-#include <QStringListModel>
+
 #include "../libdivecomputer.h"
 #include "ui_downloadfromdivecomputer.h"
 
+class QStringListModel;
+
 class DownloadThread : public QThread {
 	Q_OBJECT
 public:
diff --git a/qt-ui/globe.h b/qt-ui/globe.h
index bb8ace4..8124a4d 100644
--- a/qt-ui/globe.h
+++ b/qt-ui/globe.h
@@ -4,10 +4,13 @@
 
 #include <marble/MarbleWidget.h>
 #include <marble/GeoDataCoordinates.h>
-#include <marble/GeoDataDocument.h>
 
 #include <QHash>
 
+namespace Marble{
+	class GeoDataDocument;
+}
+
 class KMessageWidget;
 using namespace Marble;
 struct dive;
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index 46de9e2..c64ef5b 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -11,7 +11,6 @@
 #include "divelistview.h"
 #include "modeldelegates.h"
 #include "globe.h"
-#include "completionmodels.h"
 #include "diveplanner.h"
 #include "divelist.h"
 #include "qthelper.h"
diff --git a/qt-ui/maintab.h b/qt-ui/maintab.h
index b925c55..e296f14 100644
--- a/qt-ui/maintab.h
+++ b/qt-ui/maintab.h
@@ -11,12 +11,13 @@
 #include <QDialog>
 #include <QMap>
 
-#include "models.h"
 #include "ui_maintab.h"
 #include "completionmodels.h"
+#include "dive.h"
 
+class WeightModel;
+class CylindersModel;
 class QCompleter;
-struct dive;
 
 struct Completers {
 	QCompleter *location;
diff --git a/qt-ui/preferences.h b/qt-ui/preferences.h
index 474064b..15436de 100644
--- a/qt-ui/preferences.h
+++ b/qt-ui/preferences.h
@@ -2,7 +2,6 @@
 #define PREFERENCES_H
 
 #include <QDialog>
-#include "dive.h"
 #include "pref.h"
 
 #include "ui_preferences.h"
diff --git a/qt-ui/printlayout.h b/qt-ui/printlayout.h
index e894f3a..8a90790 100644
--- a/qt-ui/printlayout.h
+++ b/qt-ui/printlayout.h
@@ -2,10 +2,11 @@
 #define PRINTLAYOUT_H
 
 #include <QObject>
-#include <QPrinter>
 #include <QList>
 #include <QVector>
+#include <QRect>
 
+class QPrinter;
 class QTableView;
 class PrintDialog;
 class TablePrintModel;
diff --git a/qt-ui/printoptions.h b/qt-ui/printoptions.h
index 72c089e..9fc55ed 100644
--- a/qt-ui/printoptions.h
+++ b/qt-ui/printoptions.h
@@ -2,8 +2,6 @@
 #define PRINTOPTIONS_H
 
 #include <QWidget>
-#include <QSlider>
-#include <QLabel>
 
 #include "ui_printoptions.h"
 
diff --git a/qt-ui/simplewidgets.cpp b/qt-ui/simplewidgets.cpp
index 89b074c..3a91813 100644
--- a/qt-ui/simplewidgets.cpp
+++ b/qt-ui/simplewidgets.cpp
@@ -1,19 +1,10 @@
 #include "simplewidgets.h"
 
 #include <QLabel>
-#include <QLabel>
-#include <QFormLayout>
-#include <QIcon>
-#include <QAbstractButton>
-#include <QSpinBox>
-#include <QButtonGroup>
-#include <QDebug>
 #include <QProcess>
 #include <QStringList>
 #include <QDebug>
-#include <QTime>
 #include <QFileDialog>
-#include <QDateTime>
 #include <QShortcut>
 #include <QCalendarWidget>
 #include "exif.h"
@@ -376,7 +367,6 @@ void DateWidget::mousePressEvent(QMouseEvent *event)
 	calendarWidget->show();
 }
 
-
 void DateWidget::focusInEvent(QFocusEvent *event)
 {
 	setFocus();
diff --git a/qt-ui/subsurfacewebservices.h b/qt-ui/subsurfacewebservices.h
index a9a67de..b54da67 100644
--- a/qt-ui/subsurfacewebservices.h
+++ b/qt-ui/subsurfacewebservices.h
@@ -10,7 +10,6 @@
 #include "ui_webservices.h"
 
 class QAbstractButton;
-class QNetworkReply;
 class QHttpMultiPart;
 
 class WebServices : public QDialog {
diff --git a/qt-ui/tagwidget.cpp b/qt-ui/tagwidget.cpp
index d1bb0d7..8201e8e 100644
--- a/qt-ui/tagwidget.cpp
+++ b/qt-ui/tagwidget.cpp
@@ -2,6 +2,7 @@
 #include <QPair>
 #include <QAbstractItemView>
 #include <QSettings>
+#include <QCompleter>
 #include <QFont>
 #include "mainwindow.h"
 
diff --git a/qt-ui/tagwidget.h b/qt-ui/tagwidget.h
index 08984f7..a3f5007 100644
--- a/qt-ui/tagwidget.h
+++ b/qt-ui/tagwidget.h
@@ -2,9 +2,10 @@
 #define TAGWIDGET_H
 
 #include "groupedlineedit.h"
-#include <QCompleter>
 #include <QPair>
 
+class QCompleter;
+
 class TagWidget : public GroupedLineEdit {
 	Q_OBJECT
 public:
diff --git a/units.h b/units.h
index a8c0d7d..f3c0212 100644
--- a/units.h
+++ b/units.h
@@ -26,6 +26,7 @@ extern "C" {
 #define SEAWATER_SALINITY 10300
 #define FRESHWATER_SALINITY 10000
 
+#include <stdint.h>
 /*
  * Some silly typedefs to make our units very explicit.
  *
-- 
2.0.0

From f97cd4372072d28e730ebdd16e8eb1c27f042de9 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <[email protected]>
Date: Thu, 26 Jun 2014 14:20:04 -0300
Subject: [PATCH 2/5] Better visualization of the maintab in the designer

The layout of the maintab differed a bit in the application
and in the designer because the designer didn't took into
account that the divemaster, buddy and tags were a one
line widget.

Signed-off-by: Tomaz Canabrava <[email protected]>
---
 qt-ui/maintab.ui | 44 +++++++++++++++++++++++++++++++-------------
 1 file changed, 31 insertions(+), 13 deletions(-)

diff --git a/qt-ui/maintab.ui b/qt-ui/maintab.ui
index 899854f..5bfa53d 100644
--- a/qt-ui/maintab.ui
+++ b/qt-ui/maintab.ui
@@ -123,6 +123,12 @@
         </item>
         <item row="8" column="0">
          <widget class="TagWidget" name="divemaster">
+          <property name="maximumSize">
+           <size>
+            <width>16777215</width>
+            <height>30</height>
+           </size>
+          </property>
           <property name="readOnly">
            <bool>false</bool>
           </property>
@@ -144,6 +150,12 @@
         </item>
         <item row="8" column="1">
          <widget class="TagWidget" name="buddy">
+          <property name="maximumSize">
+           <size>
+            <width>16777215</width>
+            <height>30</height>
+           </size>
+          </property>
           <property name="readOnly">
            <bool>false</bool>
           </property>
@@ -220,6 +232,13 @@
           </item>
          </layout>
         </item>
+        <item row="1" column="0" rowspan="2">
+         <widget class="DateWidget" name="dateEdit" native="true">
+          <property name="focusPolicy">
+           <enum>Qt::StrongFocus</enum>
+          </property>
+         </widget>
+        </item>
         <item row="12" column="0" colspan="2">
          <widget class="TagWidget" name="tagWidget">
           <property name="sizePolicy">
@@ -234,6 +253,12 @@
             <height>0</height>
            </size>
           </property>
+          <property name="maximumSize">
+           <size>
+            <width>16777215</width>
+            <height>30</height>
+           </size>
+          </property>
           <property name="verticalScrollBarPolicy">
            <enum>Qt::ScrollBarAlwaysOff</enum>
           </property>
@@ -245,13 +270,6 @@
           </property>
          </widget>
         </item>
-        <item row="1" column="0" rowspan="2">
-         <widget class="DateWidget" name="dateEdit" native="true">
-          <property name="focusPolicy">
-           <enum>Qt::StrongFocus</enum>
-          </property>
-         </widget>
-        </item>
        </layout>
       </widget>
      </widget>
@@ -282,8 +300,8 @@
         <rect>
          <x>0</x>
          <y>0</y>
-         <width>100</width>
-         <height>30</height>
+         <width>662</width>
+         <height>642</height>
         </rect>
        </property>
        <layout class="QGridLayout" name="gridLayout_5">
@@ -362,8 +380,8 @@
         <rect>
          <x>0</x>
          <y>0</y>
-         <width>548</width>
-         <height>395</height>
+         <width>662</width>
+         <height>642</height>
         </rect>
        </property>
        <layout class="QGridLayout" name="gridLayout_6">
@@ -672,8 +690,8 @@
         <rect>
          <x>0</x>
          <y>0</y>
-         <width>468</width>
-         <height>229</height>
+         <width>662</width>
+         <height>642</height>
         </rect>
        </property>
        <layout class="QGridLayout" name="gridLayout_7">
-- 
2.0.0

From 977653c75a2f038eeef8402b6ffcefddb08b8932 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <[email protected]>
Date: Thu, 26 Jun 2014 14:35:53 -0300
Subject: [PATCH 3/5] Added a TimeEdit

The thing that I was trying to do didn't worked, getting back
to the original Qt timeEdit.

Signed-off-by: Tomaz Canabrava <[email protected]>
---
 qt-ui/maintab.ui | 182 +++++++++++++++++++++++++++++--------------------------
 1 file changed, 96 insertions(+), 86 deletions(-)

diff --git a/qt-ui/maintab.ui b/qt-ui/maintab.ui
index 5bfa53d..ff7a458 100644
--- a/qt-ui/maintab.ui
+++ b/qt-ui/maintab.ui
@@ -57,7 +57,14 @@
         <property name="spacing">
          <number>2</number>
         </property>
-        <item row="1" column="1">
+        <item row="5" column="0">
+         <widget class="QLabel" name="CoordinatedLabel">
+          <property name="text">
+           <string>Coordinates</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="2">
          <layout class="QHBoxLayout" name="temperatureLabels">
           <item>
            <widget class="QLabel" name="airTempLabel">
@@ -75,7 +82,14 @@
           </item>
          </layout>
         </item>
-        <item row="2" column="1">
+        <item row="13" column="0">
+         <widget class="QLabel" name="NotesLabel">
+          <property name="text">
+           <string>Notes</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="2">
          <layout class="QHBoxLayout" name="airWaterTempLayout">
           <item>
            <widget class="QLineEdit" name="airtemp">
@@ -93,36 +107,36 @@
           </item>
          </layout>
         </item>
-        <item row="4" column="0" colspan="2">
+        <item row="4" column="0" colspan="3">
          <widget class="QLineEdit" name="location">
           <property name="readOnly">
            <bool>false</bool>
           </property>
          </widget>
         </item>
-        <item row="3" column="0">
-         <widget class="QLabel" name="LocationLabel">
-          <property name="text">
-           <string>Location</string>
+        <item row="14" column="0" colspan="3">
+         <widget class="QTextEdit" name="notes">
+          <property name="readOnly">
+           <bool>false</bool>
           </property>
          </widget>
         </item>
-        <item row="11" column="0">
-         <widget class="QLabel" name="TagLabel">
+        <item row="9" column="2">
+         <widget class="QLabel" name="SuitLabel">
           <property name="text">
-           <string>Tags</string>
+           <string>Suit</string>
           </property>
          </widget>
         </item>
-        <item row="6" column="0" colspan="2">
-         <widget class="QLineEdit" name="coordinates">
-          <property name="readOnly">
-           <bool>false</bool>
+        <item row="3" column="0">
+         <widget class="QLabel" name="LocationLabel">
+          <property name="text">
+           <string>Location</string>
           </property>
          </widget>
         </item>
-        <item row="8" column="0">
-         <widget class="TagWidget" name="divemaster">
+        <item row="8" column="2">
+         <widget class="TagWidget" name="buddy">
           <property name="maximumSize">
            <size>
             <width>16777215</width>
@@ -134,28 +148,15 @@
           </property>
          </widget>
         </item>
-        <item row="5" column="0">
-         <widget class="QLabel" name="CoordinatedLabel">
-          <property name="text">
-           <string>Coordinates</string>
-          </property>
-         </widget>
-        </item>
-        <item row="7" column="1">
+        <item row="7" column="2">
          <widget class="QLabel" name="BuddyLabel">
           <property name="text">
            <string>Buddy</string>
           </property>
          </widget>
         </item>
-        <item row="8" column="1">
-         <widget class="TagWidget" name="buddy">
-          <property name="maximumSize">
-           <size>
-            <width>16777215</width>
-            <height>30</height>
-           </size>
-          </property>
+        <item row="6" column="0" colspan="3">
+         <widget class="QLineEdit" name="coordinates">
           <property name="readOnly">
            <bool>false</bool>
           </property>
@@ -168,21 +169,72 @@
           </property>
          </widget>
         </item>
-        <item row="14" column="0" colspan="2">
-         <widget class="QTextEdit" name="notes">
+        <item row="10" column="2">
+         <widget class="QLineEdit" name="suit">
           <property name="readOnly">
            <bool>false</bool>
           </property>
          </widget>
         </item>
-        <item row="10" column="1">
-         <widget class="QLineEdit" name="suit">
+        <item row="11" column="0">
+         <widget class="QLabel" name="TagLabel">
+          <property name="text">
+           <string>Tags</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="0" rowspan="2">
+         <widget class="DateWidget" name="dateEdit" native="true">
+          <property name="focusPolicy">
+           <enum>Qt::StrongFocus</enum>
+          </property>
+         </widget>
+        </item>
+        <item row="12" column="0" colspan="3">
+         <widget class="TagWidget" name="tagWidget">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="minimumSize">
+           <size>
+            <width>0</width>
+            <height>0</height>
+           </size>
+          </property>
+          <property name="maximumSize">
+           <size>
+            <width>16777215</width>
+            <height>30</height>
+           </size>
+          </property>
+          <property name="verticalScrollBarPolicy">
+           <enum>Qt::ScrollBarAlwaysOff</enum>
+          </property>
+          <property name="horizontalScrollBarPolicy">
+           <enum>Qt::ScrollBarAlwaysOff</enum>
+          </property>
+          <property name="lineWrapMode">
+           <enum>QPlainTextEdit::NoWrap</enum>
+          </property>
+         </widget>
+        </item>
+        <item row="8" column="0" colspan="2">
+         <widget class="TagWidget" name="divemaster">
+          <property name="maximumSize">
+           <size>
+            <width>16777215</width>
+            <height>30</height>
+           </size>
+          </property>
           <property name="readOnly">
            <bool>false</bool>
           </property>
          </widget>
         </item>
-        <item row="9" column="0">
+        <item row="9" column="0" colspan="2">
          <layout class="QHBoxLayout" name="ratingVisibilityLabels">
           <item>
            <widget class="QLabel" name="RatingLabel">
@@ -200,21 +252,7 @@
           </item>
          </layout>
         </item>
-        <item row="13" column="0">
-         <widget class="QLabel" name="NotesLabel">
-          <property name="text">
-           <string>Notes</string>
-          </property>
-         </widget>
-        </item>
-        <item row="9" column="1">
-         <widget class="QLabel" name="SuitLabel">
-          <property name="text">
-           <string>Suit</string>
-          </property>
-         </widget>
-        </item>
-        <item row="10" column="0">
+        <item row="10" column="0" colspan="2">
          <layout class="QHBoxLayout" name="ratingVisibilityWidgets">
           <item>
            <widget class="StarWidget" name="rating" native="true">
@@ -232,43 +270,15 @@
           </item>
          </layout>
         </item>
-        <item row="1" column="0" rowspan="2">
-         <widget class="DateWidget" name="dateEdit" native="true">
-          <property name="focusPolicy">
-           <enum>Qt::StrongFocus</enum>
+        <item row="1" column="1">
+         <widget class="QLabel" name="label">
+          <property name="text">
+           <string>Time</string>
           </property>
          </widget>
         </item>
-        <item row="12" column="0" colspan="2">
-         <widget class="TagWidget" name="tagWidget">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="minimumSize">
-           <size>
-            <width>0</width>
-            <height>0</height>
-           </size>
-          </property>
-          <property name="maximumSize">
-           <size>
-            <width>16777215</width>
-            <height>30</height>
-           </size>
-          </property>
-          <property name="verticalScrollBarPolicy">
-           <enum>Qt::ScrollBarAlwaysOff</enum>
-          </property>
-          <property name="horizontalScrollBarPolicy">
-           <enum>Qt::ScrollBarAlwaysOff</enum>
-          </property>
-          <property name="lineWrapMode">
-           <enum>QPlainTextEdit::NoWrap</enum>
-          </property>
-         </widget>
+        <item row="2" column="1">
+         <widget class="QTimeEdit" name="timeEdit"/>
         </item>
        </layout>
       </widget>
-- 
2.0.0

From 34255cca56e37d8150986091e2aa9d6dbf43586d Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <[email protected]>
Date: Thu, 26 Jun 2014 14:54:16 -0300
Subject: [PATCH 4/5] Added code for TimeEdit

This makes the TimeEdit works again.

Signed-off-by: Tomaz Canabrava <[email protected]>
---
 qt-ui/maintab.cpp | 14 +++++++++++++-
 qt-ui/maintab.h   |  1 +
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index c64ef5b..15759d7 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -75,6 +75,7 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
 	ui.airtemp->installEventFilter(this);
 	ui.watertemp->installEventFilter(this);
 	ui.dateEdit->installEventFilter(this);
+	ui.timeEdit->installEventFilter(this);
 	ui.tagWidget->installEventFilter(this);
 
 	QList<QObject *> statisticsTabWidgets = ui.statisticsTab->children();
@@ -391,7 +392,7 @@ void MainTab::updateDiveInfo(int dive)
 	if (d) {
 		updateGpsCoordinates(d);
 		ui.dateEdit->setDate(QDateTime::fromTime_t(d->when).date());
-		//TODO: set also the time when the widget is ready.
+		ui.timeEdit->setTime(QDateTime::fromTime_t(d->when).time());
 		if (MainWindow::instance() && MainWindow::instance()->dive_list()->selectedTrips().count() == 1) {
 			setTabText(0, tr("Trip Notes"));
 			// only use trip relevant fields
@@ -789,6 +790,7 @@ void MainTab::resetPallete()
 	ui.airtemp->setPalette(p);
 	ui.watertemp->setPalette(p);
 	ui.dateEdit->setPalette(p);
+	ui.timeEdit->setPalette(p);
 	ui.tagWidget->setPalette(p);
 }
 
@@ -956,6 +958,16 @@ void MainTab::on_dateEdit_dateChanged(const QDateTime &datetime)
 	markChangedWidget(ui.dateEdit);
 }
 
+void MainTab::on_timeEdit_timeChanged(const QTime &time)
+{
+	if (editMode == NONE)
+		return;
+	QDateTime dateTime = QDateTime::fromTime_t(editedDive.when);
+	dateTime.setTime(time);
+	editedDive.when = dateTime.toTime_t();
+	markChangedWidget(ui.timeEdit);
+}
+
 bool MainTab::tagsChanged(dive *a, dive *b)
 {
 	char bufA[1024], bufB[1024];
diff --git a/qt-ui/maintab.h b/qt-ui/maintab.h
index e296f14..1e7b5d3 100644
--- a/qt-ui/maintab.h
+++ b/qt-ui/maintab.h
@@ -69,6 +69,7 @@ slots:
 	void on_watertemp_textChanged(const QString &text);
 	void validate_temp_field(QLineEdit *tempField, const QString &text);
 	void on_dateEdit_dateChanged(const QDateTime &datetime);
+	void on_timeEdit_timeChanged(const QTime & time);
 	void on_rating_valueChanged(int value);
 	void on_visibility_valueChanged(int value);
 	void on_tagWidget_textChanged();
-- 
2.0.0

From c51b10a6b071e50f5d92f39164e41a0f9cf835d7 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <[email protected]>
Date: Thu, 26 Jun 2014 14:57:25 -0300
Subject: [PATCH 5/5] Fixed changing dates with the new date widget.

The maintab was connecting with an invalid slot on the
new date widget, QDateTime instead of QDate

Signed-off-by: Tomaz Canabrava <[email protected]>
---
 qt-ui/maintab.cpp | 10 ++++++----
 qt-ui/maintab.h   |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index 15759d7..d46f364 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -948,13 +948,14 @@ void MainTab::validate_temp_field(QLineEdit *tempField, const QString &text)
 	}
 }
 
-void MainTab::on_dateEdit_dateChanged(const QDateTime &datetime)
+void MainTab::on_dateEdit_dateChanged(const QDate &date)
 {
 	if (editMode == NONE)
 		return;
-	QDateTime dateTimeUtc(datetime);
-	dateTimeUtc.setTimeSpec(Qt::UTC);
-	editedDive.when = dateTimeUtc.toTime_t();
+	QDateTime dateTime = QDateTime::fromTime_t(editedDive.when);
+	dateTime.setTimeSpec(Qt::UTC);
+	dateTime.setDate(date);
+	editedDive.when = dateTime.toTime_t();
 	markChangedWidget(ui.dateEdit);
 }
 
@@ -963,6 +964,7 @@ void MainTab::on_timeEdit_timeChanged(const QTime &time)
 	if (editMode == NONE)
 		return;
 	QDateTime dateTime = QDateTime::fromTime_t(editedDive.when);
+	dateTime.setTimeSpec(Qt::UTC);
 	dateTime.setTime(time);
 	editedDive.when = dateTime.toTime_t();
 	markChangedWidget(ui.timeEdit);
diff --git a/qt-ui/maintab.h b/qt-ui/maintab.h
index 1e7b5d3..f20af84 100644
--- a/qt-ui/maintab.h
+++ b/qt-ui/maintab.h
@@ -68,7 +68,7 @@ slots:
 	void on_airtemp_textChanged(const QString &text);
 	void on_watertemp_textChanged(const QString &text);
 	void validate_temp_field(QLineEdit *tempField, const QString &text);
-	void on_dateEdit_dateChanged(const QDateTime &datetime);
+	void on_dateEdit_dateChanged(const QDate &date);
 	void on_timeEdit_timeChanged(const QTime & time);
 	void on_rating_valueChanged(int value);
 	void on_visibility_valueChanged(int value);
-- 
2.0.0

_______________________________________________
subsurface mailing list
[email protected]
http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to