1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2025-06-27 11:39:16 +02:00

Changed application data paths to more platform-standard locations

This commit is contained in:
2018-11-02 20:01:19 +01:00
parent f6b1344ee2
commit f762013e1e
35 changed files with 309 additions and 178 deletions

View File

@ -6,13 +6,14 @@
#include <QNetworkAccessManager>
#include <QLibraryInfo>
#include <QSettings>
#include "common/programpaths.h"
#include "common/config.h"
#include "map/downloader.h"
#include "map/ellipsoid.h"
#include "map/gcs.h"
#include "map/pcs.h"
#include "opengl.h"
#include "gui.h"
#include "config.h"
#include "settings.h"
#include "app.h"
@ -20,13 +21,21 @@
App::App(int &argc, char **argv) : QApplication(argc, argv),
_argc(argc), _argv(argv)
{
#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
setApplicationName(APP_NAME);
#else
setApplicationName(QString(APP_NAME).toLower());
#endif
setApplicationVersion(APP_VERSION);
QTranslator *gpxsee = new QTranslator(this);
gpxsee->load(QLocale::system(), "gpxsee", "_", TRANSLATIONS_DIR);
gpxsee->load(QLocale::system(), "gpxsee", "_",
ProgramPaths::translationsDir());
installTranslator(gpxsee);
QTranslator *qt = new QTranslator(this);
#if defined(Q_OS_WIN32) || defined(Q_OS_MAC)
qt->load(QLocale::system(), "qt", "_", TRANSLATIONS_DIR);
qt->load(QLocale::system(), "qt", "_", ProgramPaths::translationsDir());
#else // Q_OS_WIN32 || Q_OS_MAC
qt->load(QLocale::system(), "qt", "_", QLibraryInfo::location(
QLibraryInfo::TranslationsPath));
@ -65,14 +74,15 @@ App::~App()
delete _gui;
}
void App::run()
int App::run()
{
_gui->show();
for (int i = 1; i < _argc; i++)
_gui->openFile(QString::fromLocal8Bit(_argv[i]));
QStringList args(arguments());
for (int i = 1; i < args.count(); i++)
_gui->openFile(args.at(i));
exec();
return exec();
}
bool App::event(QEvent *event)
@ -87,41 +97,27 @@ bool App::event(QEvent *event)
void App::loadDatums()
{
QString ef, df;
QString ellipsoidsFile(ProgramPaths::ellipsoidsFile());
QString gcsFile(ProgramPaths::gcsFile());
if (QFile::exists(USER_ELLIPSOID_FILE))
ef = USER_ELLIPSOID_FILE;
else if (QFile::exists(GLOBAL_ELLIPSOID_FILE))
ef = GLOBAL_ELLIPSOID_FILE;
else
if (ellipsoidsFile.isNull())
qWarning("No ellipsoids file found.");
if (gcsFile.isNull())
qWarning("No GCS file found.");
if (QFile::exists(USER_GCS_FILE))
df = USER_GCS_FILE;
else if (QFile::exists(GLOBAL_GCS_FILE))
df = GLOBAL_GCS_FILE;
else
qWarning("No datums file found.");
if (!ef.isNull() && !df.isNull()) {
Ellipsoid::loadList(ef);
GCS::loadList(df);
if (!ellipsoidsFile.isNull() && !gcsFile.isNull()) {
Ellipsoid::loadList(ellipsoidsFile);
GCS::loadList(gcsFile);
} else
qWarning("Maps based on a datum different from WGS84 won't work.");
}
void App::loadPCSs()
{
QString file;
QString pcsFile(ProgramPaths::pcsFile());
if (QFile::exists(USER_PCS_FILE))
file = USER_PCS_FILE;
else if (QFile::exists(GLOBAL_PCS_FILE))
file = GLOBAL_PCS_FILE;
else {
if (pcsFile.isNull())
qWarning("No PCS file found.");
return;
}
PCS::loadList(file);
else
PCS::loadList(pcsFile);
}

View File

@ -12,7 +12,7 @@ class App : QApplication
public:
App(int &argc, char **argv);
~App();
void run();
int run();
protected:
bool event(QEvent *event);

View File

@ -1,7 +1,7 @@
#include <cmath>
#include <QPainter>
#include "common/util.h"
#include "config.h"
#include "font.h"
#include "axisitem.h"

View File

@ -1,7 +1,6 @@
#include <cmath>
#include <QLocale>
#include "data/data.h"
#include "config.h"
#include "tooltip.h"
#include "elevationgraphitem.h"
#include "elevationgraph.h"

7
src/GUI/font.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef FONT_H
#define FONT_H
#define FONT_FAMILY "Arial"
#define FONT_SIZE 12 // px
#endif // FONT_H

View File

@ -8,7 +8,6 @@
#include <QLocale>
#include "data/graph.h"
#include "opengl.h"
#include "config.h"
#include "axisitem.h"
#include "slideritem.h"
#include "sliderinfoitem.h"

View File

@ -1,4 +1,4 @@
#include "config.h"
#include "common/config.h"
#include <QApplication>
#include <QSplitter>
#include <QVBoxLayout>
@ -28,6 +28,7 @@
#include <QScreen>
#endif // ENABLE_HIDPI
#include <QStyle>
#include "common/programpaths.h"
#include "data/data.h"
#include "data/poi.h"
#include "map/maplist.h"
@ -108,14 +109,9 @@ GUI::GUI()
void GUI::loadMaps()
{
_ml = new MapList(this);
QString dir;
QString mapDir(ProgramPaths::mapDir());
if (QFile::exists(USER_MAP_DIR))
dir = USER_MAP_DIR;
else if (QFile::exists(GLOBAL_MAP_DIR))
dir = GLOBAL_MAP_DIR;
if (!dir.isNull() && !_ml->loadDir(dir))
if (!mapDir.isNull() && !_ml->loadDir(mapDir))
qWarning("%s", qPrintable(_ml->errorString()));
_map = new EmptyMap(this);
@ -124,14 +120,9 @@ void GUI::loadMaps()
void GUI::loadPOIs()
{
_poi = new POI(this);
QString dir;
QString poiDir(ProgramPaths::poiDir());
if (QFile::exists(USER_POI_DIR))
dir = USER_POI_DIR;
else if (QFile::exists(GLOBAL_POI_DIR))
dir = GLOBAL_POI_DIR;
if (!dir.isNull() && !_poi->loadDir(dir))
if (!poiDir.isNull() && !_poi->loadDir(poiDir))
qWarning("%s", qPrintable(_poi->errorString()));
}
@ -702,19 +693,13 @@ void GUI::paths()
msgBox.setWindowTitle(tr("Paths"));
msgBox.setText("<h3>" + tr("Paths") + "</h3>");
msgBox.setInformativeText(
"<style>td {white-space: pre; padding-right: 1em;}</style><h4>"
+ tr("Global") + "</h4><table><tr><td>" + tr("Map directory:")
+ "</td><td><code>" + QDir::cleanPath(GLOBAL_MAP_DIR)
+ "</code></td></tr><tr><td>" + tr("POI directory:") + "</td><td><code>"
+ QDir::cleanPath(GLOBAL_POI_DIR) + "</code></td></tr><tr><td>"
"<style>td {white-space: pre; padding-right: 1em;}</style><table><tr><td>"
+ tr("Map directory:") + "</td><td><code>"
+ QDir::cleanPath(ProgramPaths::mapDir(true)) + "</code></td></tr><tr><td>"
+ tr("POI directory:") + "</td><td><code>"
+ QDir::cleanPath(ProgramPaths::poiDir(true)) + "</code></td></tr><tr><td>"
+ tr("GCS/PCS directory:") + "</td><td><code>"
+ QDir::cleanPath(GLOBAL_CSV_DIR) + "</code></td></tr></table>"
+ "<h4>" + tr("User-specific") + "</h4><table><tr><td>"
+ tr("Map directory:") + "</td><td><code>" + QDir::cleanPath(USER_MAP_DIR)
+ "</code></td></tr><tr><td>" + tr("POI directory:") + "</td><td><code>"
+ QDir::cleanPath(USER_POI_DIR) + "</code></td></tr><tr><td>"
+ tr("GCS/PCS directory:") + "</td><td><code>"
+ QDir::cleanPath(USER_CSV_DIR) + "</code></td></tr></table>"
+ QDir::cleanPath(ProgramPaths::csvDir(true)) + "</code></td></tr></table>"
);
msgBox.exec();
@ -1615,7 +1600,7 @@ void GUI::dropEvent(QDropEvent *event)
void GUI::writeSettings()
{
QSettings settings(APP_NAME, APP_NAME);
QSettings settings(qApp->applicationName(), qApp->applicationName());
settings.clear();
settings.beginGroup(WINDOW_SETTINGS_GROUP);
@ -1810,7 +1795,7 @@ void GUI::writeSettings()
void GUI::readSettings()
{
int value;
QSettings settings(APP_NAME, APP_NAME);
QSettings settings(qApp->applicationName(), qApp->applicationName());
settings.beginGroup(WINDOW_SETTINGS_GROUP);
resize(settings.value(WINDOW_SIZE_SETTING, WINDOW_SIZE_DEFAULT).toSize());

View File

@ -1,6 +1,6 @@
#include <QFont>
#include <QPainter>
#include "config.h"
#include "font.h"
#include "infoitem.h"
#define PADDING 10

View File

@ -6,12 +6,12 @@
#include <QHash>
#include <QList>
#include "common/rectc.h"
#include "common/config.h"
#include "data/waypoint.h"
#include "searchpointer.h"
#include "units.h"
#include "format.h"
#include "palette.h"
#include "config.h"
class Data;
class POI;

View File

@ -2,10 +2,9 @@
#define OPTIONSDIALOG_H
#include <QDialog>
#include "common/config.h"
#include "palette.h"
#include "units.h"
#include "config.h"
class ColorBox;
class StyleComboBox;

View File

@ -1,7 +1,8 @@
#include <cmath>
#include <QApplication>
#include <QPainter>
#include "common/util.h"
#include "config.h"
#include "font.h"
#include "scaleitem.h"

View File

@ -1,5 +1,5 @@
#include <QPainter>
#include "config.h"
#include "font.h"
#include "sliderinfoitem.h"

View File

@ -1,6 +1,5 @@
#include <QLocale>
#include "data/data.h"
#include "config.h"
#include "tooltip.h"
#include "format.h"
#include "speedgraphitem.h"

View File

@ -1,6 +1,5 @@
#include <QPaintEngine>
#include <QPaintDevice>
#include "config.h"
#include "infoitem.h"
#include "trackinfo.h"

View File

@ -1,6 +1,6 @@
#include <QApplication>
#include <QPainter>
#include "config.h"
#include "font.h"
#include "tooltip.h"
#include "waypointitem.h"