summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2014-12-29 11:14:34 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-12-29 11:14:34 -0800
commitcab320201bc76f8ab5ca4cea5a5876ac31e79ee2 (patch)
tree3633f4f919c70c9282e0660c0dc8c50252c39161
parentadb5cc5d306f11f8b3749259623ce6aae616f532 (diff)
downloadsubsurface-cab320201bc76f8ab5ca4cea5a5876ac31e79ee2.tar.gz
Facebook integration: improve the confirmation UI experience
Date and time needs to be a string, not a time_t. Duration should be called that (and not time) and wasn't hooked up. Also added a helper to get the duration string. Finally reordered the components of the text that is shown to make it more natural (or I should say, more in line with the order we use elsewhere). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--helpers.h1
-rw-r--r--qt-gui.cpp16
-rw-r--r--qt-ui/socialnetworks.cpp15
-rw-r--r--qt-ui/socialnetworksdialog.ui6
4 files changed, 31 insertions, 7 deletions
diff --git a/helpers.h b/helpers.h
index 56532d5c4..885b73e58 100644
--- a/helpers.h
+++ b/helpers.h
@@ -29,6 +29,7 @@ QString getSubsurfaceDataPath(QString folderToFind);
extern const QString get_dc_nickname(const char *model, uint32_t deviceid);
int gettimezoneoffset(timestamp_t when = 0);
int parseTemperatureToMkelvin(const QString &text);
+QString get_dive_duration_string(timestamp_t when, QString hourText, QString minutesText);
QString get_dive_date_string(timestamp_t when);
QString get_short_dive_date_string(timestamp_t when);
QString get_trip_date_string(timestamp_t when, int nr);
diff --git a/qt-gui.cpp b/qt-gui.cpp
index 70aef1817..e007a2563 100644
--- a/qt-gui.cpp
+++ b/qt-gui.cpp
@@ -416,6 +416,22 @@ int parseTemperatureToMkelvin(const QString &text)
return mkelvin;
}
+QString get_dive_duration_string(timestamp_t when, QString hourText, QString minutesText)
+{
+ int hrs, mins;
+ mins = (when + 59) / 60;
+ hrs = mins / 60;
+ mins -= hrs * 60;
+
+ QString displayTime;
+ if (hrs)
+ displayTime = QString("%1%2%3%4").arg(hrs).arg(hourText).arg(mins, 2, 10, QChar('0')).arg(minutesText);
+ else
+ displayTime = QString("%1%2").arg(mins).arg(minutesText);
+
+ return displayTime;
+}
+
QString get_dive_date_string(timestamp_t when)
{
QDateTime ts;
diff --git a/qt-ui/socialnetworks.cpp b/qt-ui/socialnetworks.cpp
index 2be2c8671..04c28df79 100644
--- a/qt-ui/socialnetworks.cpp
+++ b/qt-ui/socialnetworks.cpp
@@ -18,6 +18,7 @@
#include "mainwindow.h"
#include "profile/profilewidget2.h"
#include "pref.h"
+#include "helpers.h"
#include "ui_socialnetworksdialog.h"
#define GET_TXT(name, field) \
@@ -259,6 +260,7 @@ SocialNetworkDialog::SocialNetworkDialog(QWidget *parent) : QDialog(parent)
{
ui->setupUi(this);
connect(ui->date, SIGNAL(clicked()), this, SLOT(selectionChanged()));
+ connect(ui->duration, SIGNAL(clicked()), this, SLOT(selectionChanged()));
connect(ui->Buddy, SIGNAL(clicked()), this, SLOT(selectionChanged()));
connect(ui->Divemaster, SIGNAL(clicked()), this, SLOT(selectionChanged()));
connect(ui->Location, SIGNAL(clicked()), this, SLOT(selectionChanged()));
@@ -269,7 +271,15 @@ void SocialNetworkDialog::selectionChanged() {
struct dive *d = current_dive;
QString fullText;
if (ui->date->isChecked()) {
- fullText += tr("Dive Date: %1 \n").arg(d->when);
+ fullText += tr("Dive Date: %1 \n").arg(get_short_dive_date_string(d->when));
+ }
+ if (ui->duration->isChecked()) {
+ fullText += tr("Duration: %1 \n").arg(get_dive_duration_string(d->duration.seconds,
+ tr("h:", "abbreviation for hours plus separator"),
+ tr("min", "abbreviation for minutes")));
+ }
+ if (ui->Location->isChecked()) {
+ fullText += tr("Dive Location: %1 \n").arg(d->location);
}
if (ui->Buddy->isChecked()) {
fullText += tr("Buddy: %1 \n").arg(d->buddy);
@@ -277,9 +287,6 @@ void SocialNetworkDialog::selectionChanged() {
if (ui->Divemaster->isChecked()) {
fullText += tr("Divemaster: %1 \n").arg(d->divemaster);
}
- if (ui->Location->isChecked()) {
- fullText += tr("Dive Location: %1 \n").arg(d->location);
- }
if (ui->Notes->isChecked()) {
fullText += tr("\n %1").arg(d->notes);
}
diff --git a/qt-ui/socialnetworksdialog.ui b/qt-ui/socialnetworksdialog.ui
index 1b88c1b1a..119b5e27d 100644
--- a/qt-ui/socialnetworksdialog.ui
+++ b/qt-ui/socialnetworksdialog.ui
@@ -28,9 +28,9 @@
<widget class="QPlainTextEdit" name="text"/>
</item>
<item row="5" column="0">
- <widget class="QCheckBox" name="time">
+ <widget class="QCheckBox" name="duration">
<property name="text">
- <string>Time</string>
+ <string>Duration</string>
</property>
</widget>
</item>
@@ -58,7 +58,7 @@
<item row="4" column="0">
<widget class="QCheckBox" name="date">
<property name="text">
- <string>date</string>
+ <string>Date and time</string>
</property>
</widget>
</item>