mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
mobile/debugging: copy GPS fixes to clipboard
The goal is to enable a user experiencing crashes when applying GPS data to their dive log to make all necessary data available to the developers. Hopefully the clipboard is large enough to hold all the data. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
faafcd0cfc
commit
64dea827bd
5 changed files with 31 additions and 1 deletions
|
@ -321,6 +321,16 @@ void GpsLocation::loadFromStorage()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString GpsLocation::getFixString()
|
||||||
|
{
|
||||||
|
// only used for debugging
|
||||||
|
QString res;
|
||||||
|
struct gpsTracker gpsEntry;
|
||||||
|
foreach (gpsEntry, m_trackers.values())
|
||||||
|
res += QString("%1: %2; %3 ; \"%4\"\n").arg(gpsEntry.when).arg(gpsEntry.location.lat.udeg).arg(gpsEntry.location.lon.udeg).arg(gpsEntry.name);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
void GpsLocation::replaceFixToStorage(gpsTracker >)
|
void GpsLocation::replaceFixToStorage(gpsTracker >)
|
||||||
{
|
{
|
||||||
if (!m_trackers.keys().contains(gt.when)) {
|
if (!m_trackers.keys().contains(gt.when)) {
|
||||||
|
|
|
@ -37,7 +37,7 @@ public:
|
||||||
bool hasLocationsSource();
|
bool hasLocationsSource();
|
||||||
QString currentPosition();
|
QString currentPosition();
|
||||||
void setLogCallBack(void (*showMsgCB)(const char *msg));
|
void setLogCallBack(void (*showMsgCB)(const char *msg));
|
||||||
|
QString getFixString();
|
||||||
QMap<qint64, gpsTracker> currentGPSInfo() const;
|
QMap<qint64, gpsTracker> currentGPSInfo() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -605,6 +605,15 @@ if you have network connectivity and want to sync your data to cloud storage."),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Kirigami.Action {
|
||||||
|
text: qsTr("Copy GPS to clipboard")
|
||||||
|
onTriggered: {
|
||||||
|
globalDrawer.close()
|
||||||
|
manager.copyGpsFixesToClipboard()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/* disable for now
|
/* disable for now
|
||||||
Kirigami.Action {
|
Kirigami.Action {
|
||||||
text: qsTr("Dive planner")
|
text: qsTr("Dive planner")
|
||||||
|
|
|
@ -492,6 +492,16 @@ void QMLManager::copyAppLogToClipboard()
|
||||||
QApplication::clipboard()->setText(getCombinedLogs(), QClipboard::Clipboard);
|
QApplication::clipboard()->setText(getCombinedLogs(), QClipboard::Clipboard);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QMLManager::copyGpsFixesToClipboard()
|
||||||
|
{
|
||||||
|
// This of course creates a potential privacy issue, so let's be clear about that
|
||||||
|
QString gpsWarning("Sending these GPS data to someone exposes your location history; ");
|
||||||
|
gpsWarning += "they can, however, be helpful when debugging problems with the app. ";
|
||||||
|
gpsWarning += "Please consider carefully where you are seninding these data.\n\n";
|
||||||
|
gpsWarning += GpsLocation::instance()->getFixString();
|
||||||
|
QApplication::clipboard()->setText(gpsWarning, QClipboard::Clipboard);
|
||||||
|
}
|
||||||
|
|
||||||
bool QMLManager::createSupportEmail()
|
bool QMLManager::createSupportEmail()
|
||||||
{
|
{
|
||||||
QString mailToLink = "mailto:in-app-support@subsurface-divelog.org?subject=Subsurface-mobile support request";
|
QString mailToLink = "mailto:in-app-support@subsurface-divelog.org?subject=Subsurface-mobile support request";
|
||||||
|
|
|
@ -217,6 +217,7 @@ public slots:
|
||||||
void clearGpsData();
|
void clearGpsData();
|
||||||
QString getCombinedLogs();
|
QString getCombinedLogs();
|
||||||
void copyAppLogToClipboard();
|
void copyAppLogToClipboard();
|
||||||
|
void copyGpsFixesToClipboard();
|
||||||
bool createSupportEmail();
|
bool createSupportEmail();
|
||||||
void finishSetup();
|
void finishSetup();
|
||||||
QString getNumber(const QString& diveId);
|
QString getNumber(const QString& diveId);
|
||||||
|
|
Loading…
Add table
Reference in a new issue