summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/importgps.h
blob: 1cef9e57a49bbeb70a512c9303b0de26ee1ea7fa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// SPDX-License-Identifier: GPL-2.0
#ifndef IMPORT_GPS_H
#define IMPORT_GPS_H

#include "ui_importgps.h"
#include "desktop-widgets/locationinformation.h"

#include <QFile>

struct dive_coords {         // This structure holds important information after parsing the GPX file:
	time_t start_dive;            // Start time of the current dive, obtained using current_dive (local time)
	time_t end_dive;              // End time of current dive (local time)
	time_t start_track;           // Start time of GPX track (UCT)
	time_t end_track;             // End time of GPX track (UCT)
	double lon;                   // Longitude of the first trackpoint after the start of the dive
	double lat;                   // Latitude of the first trackpoint after the start of the dive
	int64_t settingsDiff_offset;  // Local time difference between dive computer and GPS equipment
	int64_t timeZone_offset;      // UCT international time zone offset of dive site
};

class ImportGPS : public QDialog {
	Q_OBJECT
public:
	Ui::ImportGPS ui;
	explicit ImportGPS(QWidget *parent, QString fileName, class Ui::LocationInformation *LocationUI);
	struct dive_coords coords;
	int getCoordsFromFile();
	void updateUI();

private
slots:
	void timeDiffEditChanged();
	void timeZoneEditChanged();
	void changeZoneForward();
	void changeZoneBackwards();
	void changeDiffForward();
	void changeDiffBackwards();
	void buttonClicked(QAbstractButton *button);

private:
	QString fileName;
	class Ui::LocationInformation *LocationUI;
	int getSubstring(QFile *f, QString *buf, char delim);
	int findXmlElement(QFile *f, QString target, QString *buf, char termc);
	int pixmapSize;
};

#endif