1
0
Fork 0

GUI ‘restore defaults’ support.

- Hold ‘alt’ on launch to restore defaults, including launcher prefs.
This commit is contained in:
James Turner 2015-03-08 00:40:22 +00:00
parent f9c23eb096
commit c3543f8fdd
4 changed files with 38 additions and 16 deletions

View file

@ -81,7 +81,7 @@ const int AircraftVariantDescriptionRole = Qt::UserRole + 200;
void initNavCache()
{
NavDataCache* cache = NavDataCache::instance();
NavDataCache* cache = NavDataCache::createInstance();
if (cache->isRebuildRequired()) {
QProgressDialog rebuildProgress("Initialising navigation data, this may take several minutes",
QString() /* cancel text */,
@ -1102,6 +1102,18 @@ void QtLauncher::initApp(int argc, char** argv)
// avoid double Apple menu and other weirdness if both Qt and OSG
// try to initialise various Cocoa structures.
flightgear::WindowBuilder::setPoseAsStandaloneApp(false);
Qt::KeyboardModifiers mods = app->queryKeyboardModifiers();
if (mods & Qt::AltModifier) {
qWarning() << "Alt pressed during launch";
// wipe out our settings
QSettings settings;
settings.clear();
Options::sharedInstance()->addOption("restore-defaults", "");
}
}
}

View file

@ -592,8 +592,13 @@ fgInitNav ()
{
flightgear::NavDataCache* cache = flightgear::NavDataCache::instance();
static bool doingRebuild = false;
if (doingRebuild || cache->isRebuildRequired()) {
doingRebuild = true;
if (!cache) {
cache = flightgear::NavDataCache::createInstance();
doingRebuild = cache->isRebuildRequired();
}
if (doingRebuild) {
bool finished = cache->rebuild();
if (!finished) {
// sleep to give the rebuild thread more time

View file

@ -1129,12 +1129,14 @@ NavDataCache::~NavDataCache()
d.reset();
}
NavDataCache* NavDataCache::instance()
NavDataCache* NavDataCache::createInstance()
{
if (!static_instance) {
static_instance = new NavDataCache;
return static_instance;
}
NavDataCache* NavDataCache::instance()
{
return static_instance;
}

View file

@ -58,6 +58,9 @@ public:
// singleton accessor
static NavDataCache* instance();
// static creator
static NavDataCache* createInstance();
SGPath path() const;
/**