2017-04-27 18:24:53 +00:00
|
|
|
// SPDX-License-Identifier: GPL-2.0
|
2013-05-07 03:50:30 +00:00
|
|
|
/*
|
|
|
|
* helpers.h
|
|
|
|
*
|
|
|
|
* header file for random helper functions of Subsurface
|
|
|
|
*
|
|
|
|
*/
|
2014-02-11 18:14:46 +00:00
|
|
|
#ifndef HELPERS_H
|
|
|
|
#define HELPERS_H
|
2013-05-07 03:50:30 +00:00
|
|
|
|
|
|
|
#include <QString>
|
|
|
|
#include "dive.h"
|
2013-06-17 22:58:26 +00:00
|
|
|
#include "qthelper.h"
|
2013-05-07 03:50:30 +00:00
|
|
|
|
2013-09-22 19:37:49 +00:00
|
|
|
QString get_depth_string(depth_t depth, bool showunit = false, bool showdecimal = true);
|
|
|
|
QString get_depth_string(int mm, bool showunit = false, bool showdecimal = true);
|
2013-06-18 17:48:46 +00:00
|
|
|
QString get_depth_unit();
|
|
|
|
QString get_weight_string(weight_t weight, bool showunit = false);
|
|
|
|
QString get_weight_unit();
|
|
|
|
QString get_temperature_string(temperature_t temp, bool showunit = false);
|
|
|
|
QString get_temp_unit();
|
Don't use "get_volume_string()" for cylinder size string
We had two totally different usage cases for "get_volume_string()": one
that did the obvious "show this volume as a string", and one that tried
to show a cylinder size.
The function used a magic third argument (the working pressure of the
cylinder) to distinguish between the two cases, but it still got it
wrong.
A metric cylinder doesn't necessarily have a working pressure at all,
and the size is a wet size in liters. We'd pass in zero as the working
pressure, and if the volume units were set to cubic feet, the logic in
"get_volume_string()" would happily convert the metric wet size into the
wet size in cubic feet.
But that's completely wrong. An imperial cylinder size simply isn't a
wet size. If you don't have a working pressure, you cannot convert the
cylinder size to cubic feet. End of story.
So instead of having "get_volume_string()" have magical behavior
depending on working pressure, and getting it wrong anyway, just make
get_volume_string do a pure volume conversion, and create a whole new
function for showing the size of a cylinder.
Now, if the cylinder doesn't have a working pressure, we just show the
metric size, even if the user had asked for cubic feet.
[Dirk Hohndel: added call to translation functions for the units]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2016-02-24 22:42:56 +00:00
|
|
|
QString get_volume_string(volume_t volume, bool showunit = false);
|
2018-02-19 20:55:18 +00:00
|
|
|
QString get_volume_string(int mliter, bool showunit = false);
|
2013-06-18 17:48:46 +00:00
|
|
|
QString get_volume_unit();
|
|
|
|
QString get_pressure_string(pressure_t pressure, bool showunit = false);
|
|
|
|
QString get_pressure_unit();
|
2013-05-30 21:26:08 +00:00
|
|
|
QString getSubsurfaceDataPath(QString folderToFind);
|
2015-10-18 21:25:14 +00:00
|
|
|
QString getPrintingTemplatePathUser();
|
|
|
|
QString getPrintingTemplatePathBundle();
|
|
|
|
void copyPath(QString src, QString dst);
|
2013-06-17 22:58:26 +00:00
|
|
|
extern const QString get_dc_nickname(const char *model, uint32_t deviceid);
|
2014-08-01 22:02:20 +00:00
|
|
|
int gettimezoneoffset(timestamp_t when = 0);
|
2017-02-26 04:23:03 +00:00
|
|
|
int parseDurationToSeconds(const QString &text);
|
2016-01-01 08:32:30 +00:00
|
|
|
int parseLengthToMm(const QString &text);
|
2014-02-28 04:09:57 +00:00
|
|
|
int parseTemperatureToMkelvin(const QString &text);
|
2016-02-06 06:51:46 +00:00
|
|
|
int parseWeightToGrams(const QString &text);
|
2016-02-09 18:52:02 +00:00
|
|
|
int parsePressureToMbar(const QString &text);
|
2016-02-13 17:34:30 +00:00
|
|
|
int parseGasMixO2(const QString &text);
|
|
|
|
int parseGasMixHE(const QString &text);
|
2018-02-04 19:07:32 +00:00
|
|
|
QString render_seconds_to_string(int seconds);
|
2017-05-11 20:43:36 +00:00
|
|
|
QString get_dive_duration_string(timestamp_t when, QString hoursText, QString minutesText, QString secondsText = QObject::tr("sec"), QString separator = ":", bool isFreeDive = false);
|
|
|
|
QString get_dive_surfint_string(timestamp_t when, QString daysText, QString hoursText, QString minutesText, QString separator = " ", int maxdays = 4);
|
2013-10-16 22:00:17 +00:00
|
|
|
QString get_dive_date_string(timestamp_t when);
|
|
|
|
QString get_short_dive_date_string(timestamp_t when);
|
2015-10-06 19:08:27 +00:00
|
|
|
bool is_same_day (timestamp_t trip_when, timestamp_t dive_when);
|
|
|
|
QString get_trip_date_string(timestamp_t when, int nr, bool getday);
|
2014-06-06 19:10:34 +00:00
|
|
|
QString uiLanguage(QLocale *callerLoc);
|
2014-06-28 15:35:59 +00:00
|
|
|
QLocale getLocale();
|
2014-06-10 05:45:44 +00:00
|
|
|
void selectedDivesGasUsed(QVector<QPair<QString, int> > &gasUsed);
|
2015-02-23 17:09:48 +00:00
|
|
|
QString getUserAgent();
|
2013-06-17 22:58:26 +00:00
|
|
|
|
2013-11-21 12:23:10 +00:00
|
|
|
#if defined __APPLE__
|
2014-02-28 04:09:57 +00:00
|
|
|
#define TITLE_OR_TEXT(_t, _m) "", _t + "\n" + _m
|
2013-11-21 12:23:10 +00:00
|
|
|
#else
|
2014-02-28 04:09:57 +00:00
|
|
|
#define TITLE_OR_TEXT(_t, _m) _t, _m
|
2013-11-21 12:23:10 +00:00
|
|
|
#endif
|
2014-02-11 18:14:46 +00:00
|
|
|
#endif // HELPERS_H
|