summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2013-10-07 11:48:14 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-10-07 11:48:14 -0700
commit90b0f75d4095a23ef3a0f43cc319784d4fc6acc3 (patch)
treec7209b8d1651ae8877f5bb0fd25da0e7ae5d1ff0
parentd9f24b282a1f1ed2455c20de62cf1dd9fa6ae48b (diff)
downloadsubsurface-90b0f75d4095a23ef3a0f43cc319784d4fc6acc3.tar.gz
Remove info.c/info.h
The one remaining helper function in there was moved to maintab.cpp (which was the one remaining user). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--Makefile2
-rw-r--r--dive.c4
-rw-r--r--dive.h3
-rw-r--r--info.c189
-rw-r--r--info.h28
-rw-r--r--qt-ui/maintab.cpp40
-rw-r--r--qt-ui/maintab.h3
7 files changed, 29 insertions, 240 deletions
diff --git a/Makefile b/Makefile
index 5c44073a8..657309918 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,6 @@ ICONDIR = $(ICONPATH)/scalable/apps
MANDIR = $(DATADIR)/man/man1
XSLTDIR = $(DATADIR)/$(NAME)/xslt
MARBLEDIR = marbledata/maps/earth/googlesat
-gtk_update_icon_cache = gtk-update-icon-cache -f -t $(ICONPATH)
ICONFILE = $(NAME)-icon.svg
DESKTOPFILE = $(NAME).desktop
@@ -67,7 +66,6 @@ SOURCES = \
divelist.c \
equipment.c \
file.c \
- info.c \
parse-xml.c \
planner.c \
subsurfacestartup.c \
diff --git a/dive.c b/dive.c
index 5cfb9581c..33a1c7e0e 100644
--- a/dive.c
+++ b/dive.c
@@ -771,10 +771,6 @@ struct dive *fixup_dive(struct dive *dive)
int i;
struct divecomputer *dc;
- add_people(dive->buddy);
- add_people(dive->divemaster);
- add_location(dive->location);
- add_suit(dive->suit);
sanitize_cylinder_info(dive);
dive->maxcns = dive->cns;
diff --git a/dive.h b/dive.h
index a6dd0e5b6..ed13a335d 100644
--- a/dive.h
+++ b/dive.h
@@ -659,9 +659,6 @@ extern void add_event(struct divecomputer *dc, int time, int type, int flags, in
extern void add_cylinder_description(cylinder_type_t *);
extern void add_weightsystem_description(weightsystem_t *);
-extern void add_people(const char *string);
-extern void add_location(const char *string);
-extern void add_suit(const char *string);
extern void remember_event(const char *eventname);
extern int evn_foreach(void (*callback)(const char *, int *, void *), void *data);
extern void clear_events(void);
diff --git a/info.c b/info.c
deleted file mode 100644
index e5978fc4b..000000000
--- a/info.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* info.c
- *
- * UI toolkit independent logic used for the info frame
- *
- * bool gps_changed(struct dive *dive, struct dive *master, const char *gps_text);
- * void print_gps_coordinates(char *buffer, int len, int lat, int lon);
- * void save_equipment_data(struct dive *dive);
- * void update_equipment_data(struct dive *dive, struct dive *master);
- * void update_time_depth(struct dive *dive, struct dive *edited);
- * const char *get_window_title(struct dive *dive);
- * char *evaluate_string_change(const char *newstring, char **textp, const char *master);
- * int text_changed(const char *old, const char *new);
- * bool parse_gps_text(const char *gps_text, double *latitude, double *longitude);
- * int divename(char *buf, size_t size, struct dive *dive, char *trailer);
- */
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-#include <ctype.h>
-#include <sys/time.h>
-#include "gettext.h"
-#include "dive.h"
-#include "display.h"
-#include "divelist.h"
-
-/* take latitude and longitude in udeg and print them in a human readable
- * form, without losing precision */
-void print_gps_coordinates(char *buffer, int len, int lat, int lon)
-{
- unsigned int latdeg, londeg;
- const char *lath, *lonh;
- char dbuf_lat[32], dbuf_lon[32];
-
- if (!lat && !lon) {
- *buffer = 0;
- return;
- }
- lath = lat >= 0 ? tr("N") : tr("S");
- lonh = lon >= 0 ? tr("E") : tr("W");
- lat = abs(lat);
- lon = abs(lon);
- latdeg = lat / 1000000;
- londeg = lon / 1000000;
- int ilatmin = (lat % 1000000) * 60;
- int ilonmin = (lon % 1000000) * 60;
- snprintf(dbuf_lat, sizeof(dbuf_lat), "%2d.%05d", ilatmin / 1000000, (ilatmin % 1000000) / 10);
- snprintf(dbuf_lon, sizeof(dbuf_lon), "%2d.%05d", ilonmin / 1000000, (ilonmin % 1000000) / 10);
- if (!*dbuf_lat || !*dbuf_lon) {
- *buffer = 0;
- return;
- }
- snprintf(buffer, len, "%s%u%s %s\' , %s%u%s %s\'",
- lath, latdeg, UTF8_DEGREE, dbuf_lat,
- lonh, londeg, UTF8_DEGREE, dbuf_lon);
-}
-
-/* we use these to find out if we edited the cylinder or weightsystem entries */
-static cylinder_t remember_cyl[MAX_CYLINDERS];
-static weightsystem_t remember_ws[MAX_WEIGHTSYSTEMS];
-#define CYL_BYTES sizeof(cylinder_t) * MAX_CYLINDERS
-#define WS_BYTES sizeof(weightsystem_t) * MAX_WEIGHTSYSTEMS
-
-void save_equipment_data(struct dive *dive)
-{
- if (dive) {
- memcpy(remember_cyl, dive->cylinder, CYL_BYTES);
- memcpy(remember_ws, dive->weightsystem, WS_BYTES);
- }
-}
-
-/* Empty and NULL compare equal */
-static int same_string(const char *a, const char *b)
-{
- /* Both NULL or same */
- if (a == b)
- return 1;
- /* Both non-NULL: strcmp */
- if (a && b)
- return !strcmp(a, b);
- /* One non-NULL? Is that one empty? */
- return !*(a ? a : b);
-}
-
-static int same_type(cylinder_t *dst, cylinder_t *src)
-{
- return dst->type.size.mliter == src->type.size.mliter &&
- dst->type.workingpressure.mbar == src->type.workingpressure.mbar &&
- same_string(dst->type.description, src->type.description);
-}
-
-static void copy_type(cylinder_t *dst, cylinder_t *src)
-{
- dst->type.size = src->type.size;
- dst->type.workingpressure = src->type.workingpressure;
- if (dst->type.description)
- free((void *)dst->type.description);
- if (!src->type.description || !*src->type.description)
- dst->type.description = NULL;
- else
- dst->type.description = strdup((char *)src->type.description);
-}
-
-static int same_gasmix(cylinder_t *dst, cylinder_t *src)
-{
- return !memcmp(&dst->gasmix, &src->gasmix, sizeof(dst->gasmix));
-}
-
-static void copy_gasmix(cylinder_t *dst, cylinder_t *src)
-{
- memcpy(&dst->gasmix, &src->gasmix, sizeof(dst->gasmix));
-}
-
-static int same_press(cylinder_t *dst, cylinder_t *src)
-{
- return dst->start.mbar == src->start.mbar &&
- dst->end.mbar == src->end.mbar;
-}
-
-static void copy_press(cylinder_t *dst, cylinder_t *src)
-{
- dst->start = src->start;
- dst->end = src->end;
-}
-
-/*
- * When we update the cylinder information, we do it individually
- * by type/gasmix/pressure, so that you can change them separately.
- *
- * The rule is: the destination has to be the same as the original
- * field, and the source has to have changed. If so, we change the
- * destination field.
- */
-static void update_cylinder(cylinder_t *dst, cylinder_t *src, cylinder_t *orig)
-{
- /* Destination type same? Change it */
- if (same_type(dst, orig) && !same_type(src, orig))
- copy_type(dst, src);
-
- /* Destination gasmix same? Change it */
- if (same_gasmix(dst, orig) && !same_gasmix(src, orig))
- copy_gasmix(dst, src);
-
- /* Destination pressures the same? */
- if (same_press(dst, orig) && !same_press(src, orig))
- copy_press(dst, src);
-}
-
-/* the editing happens on the master dive; we copy the equipment
- data if it has changed in the master dive and the other dive
- either has no entries for the equipment or the same entries
- as the master dive had before it was edited */
-void update_equipment_data(struct dive *dive, struct dive *master)
-{
- int i;
-
- if (dive == master)
- return;
- for (i = 0; i < MAX_CYLINDERS; i++)
- update_cylinder(dive->cylinder+i, master->cylinder+i, remember_cyl+i);
- if (! weightsystems_equal(remember_ws, master->weightsystem) &&
- (no_weightsystems(dive->weightsystem) ||
- weightsystems_equal(dive->weightsystem, remember_ws)))
- memcpy(dive->weightsystem, master->weightsystem, WS_BYTES);
-}
-
-/* we can simply overwrite these - this only gets called if we edited
- * a single dive and the dive was first copied into edited - so we can
- * just take those values */
-void update_time_depth(struct dive *dive, struct dive *edited)
-{
- dive->when = edited->when;
- dive->dc.duration.seconds = edited->dc.duration.seconds;
- dive->dc.maxdepth.mm = edited->dc.maxdepth.mm;
- dive->dc.meandepth.mm = edited->dc.meandepth.mm;
-}
-
-void add_people(const char *string)
-{
- /* add names to the completion list for people */
-}
-void add_location(const char *string)
-{
- /* add names to the completion list for locations */
-}
-void add_suit(const char *string)
-{
- /* add names to the completion list for suits */
-}
diff --git a/info.h b/info.h
deleted file mode 100644
index 87515ef14..000000000
--- a/info.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * info.h
- *
- * logic functions used from info-gtk.c
- */
-#ifndef INFO_H
-#define INFO_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern bool gps_changed(struct dive *dive, struct dive *master, const char *gps_text);
-extern void print_gps_coordinates(char *buffer, int len, int lat, int lon);
-extern void save_equipment_data(struct dive *dive);
-extern void update_equipment_data(struct dive *dive, struct dive *master);
-extern void update_time_depth(struct dive *dive, struct dive *edited);
-extern const char *get_window_title(struct dive *dive);
-extern char *evaluate_string_change(const char *newstring, char **textp, const char *master);
-extern int text_changed(const char *old, const char * /*new is a c++ keyword*/);
-extern bool parse_gps_text(const char *gps_text, double *latitude, double *longitude);
-extern int divename(char *buf, size_t size, struct dive *dive, char *trailer);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index a8d478164..5dcd09062 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -8,7 +8,6 @@
#include "mainwindow.h"
#include "../helpers.h"
#include "../statistics.h"
-#include "../info.h"
#include "divelistview.h"
#include "modeldelegates.h"
#include "globe.h"
@@ -265,9 +264,7 @@ void MainTab::updateDiveInfo(int dive)
UPDATE_TEMP(d, airtemp);
UPDATE_TEMP(d, watertemp);
if (d) {
- char buffer[256];
- print_gps_coordinates(buffer, sizeof buffer, d->latitude.udeg, d->longitude.udeg);
- ui.coordinates->setText(buffer);
+ ui.coordinates->setText(printGPSCoords(d->latitude.udeg, d->longitude.udeg));
ui.dateTimeEdit->setDateTime(QDateTime::fromTime_t(d->when - gettimezoneoffset()));
if (mainWindow() && mainWindow()->dive_list()->selectedTrips.count() == 1) {
// only use trip relevant fields
@@ -328,7 +325,7 @@ void MainTab::updateDiveInfo(int dive)
ui.airPressureText->setText(QString("%1mbar").arg(d->surface_pressure.mbar));
else
ui.airPressureText->clear();
- ui.depthLimits->setMaximum(get_depth_string(stats_selection.max_depth, TRUE));
+ ui.depthLimits->setMaximum(get_depth_string(stats_selection.max_depth, TRUE));
ui.depthLimits->setMinimum(get_depth_string(stats_selection.min_depth, TRUE));
ui.depthLimits->setAverage(get_depth_string(stats_selection.avg_depth, TRUE));
ui.sacLimits->setMaximum(get_volume_string(stats_selection.max_sac, TRUE).append(tr("/min")));
@@ -425,10 +422,7 @@ void MainTab::acceptChanges()
} else {
struct dive *curr = current_dive;
//Reset coordinates field, in case it contains garbage.
- char buffer[256];
- print_gps_coordinates(buffer, sizeof buffer
- , current_dive->latitude.udeg, current_dive->longitude.udeg);
- ui.coordinates->setText(buffer);
+ ui.coordinates->setText(printGPSCoords(current_dive->latitude.udeg, current_dive->longitude.udeg));
if (notesBackup[curr].buddy != ui.buddy->text() ||
notesBackup[curr].suit != ui.suit->text() ||
notesBackup[curr].notes != ui.notes->toPlainText() ||
@@ -657,10 +651,7 @@ void MainTab::on_location_textChanged(const QString& text)
(dive->latitude.udeg || dive->longitude.udeg)) {
EDIT_SELECTED_DIVES( mydive->latitude = dive->latitude );
EDIT_SELECTED_DIVES( mydive->longitude = dive->longitude );
- char buffer[256];
- print_gps_coordinates(buffer, sizeof buffer
- , dive->latitude.udeg, dive->longitude.udeg);
- ui.coordinates->setText(buffer);
+ ui.coordinates->setText(printGPSCoords(dive->latitude.udeg, dive->longitude.udeg));
markChangedWidget(ui.coordinates);
break;
}
@@ -734,3 +725,26 @@ void MainTab::editWeightWidget(const QModelIndex& index)
if (index.isValid() && index.column() != WeightModel::REMOVE)
ui.weights->edit(index);
}
+
+QString MainTab::printGPSCoords(int lat, int lon)
+{
+ unsigned int latdeg, londeg;
+ unsigned int ilatmin, ilonmin;
+ QString lath, lonh, result;
+
+ if (!lat && !lon)
+ return QString("");
+
+ lath = lat >= 0 ? tr("N") : tr("S");
+ lonh = lon >= 0 ? tr("E") : tr("W");
+ lat = abs(lat);
+ lon = abs(lon);
+ latdeg = lat / 1000000;
+ londeg = lon / 1000000;
+ ilatmin = (lat % 1000000) * 60;
+ ilonmin = (lon % 1000000) * 60;
+ result.sprintf("%s%u%s %2d.%05d\' , %s%u%s %2d.%05d\'",
+ lath.toLocal8Bit().data(), latdeg, UTF8_DEGREE, ilatmin / 1000000, (ilatmin % 1000000) / 10,
+ lonh.toLocal8Bit().data(), londeg, UTF8_DEGREE, ilonmin / 1000000, (ilonmin % 1000000) / 10);
+ return result;
+}
diff --git a/qt-ui/maintab.h b/qt-ui/maintab.h
index 2a588bad8..9cfe43a26 100644
--- a/qt-ui/maintab.h
+++ b/qt-ui/maintab.h
@@ -91,7 +91,8 @@ private:
enum { NONE, DIVE, TRIP, ADD } editMode;
Completers completers;
void enableEdition();
- void resetPallete();
+ void resetPallete();
+ QString printGPSCoords(int lat, int lon);
};
#endif