mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 14:58:03 +02:00
Some QSettings cleanup + persistant script location
This commit is contained in:
parent
7578b282e2
commit
e33da2a741
2 changed files with 60 additions and 44 deletions
|
@ -338,7 +338,8 @@ Application::Application(int& argc, char** argv, timeval &startup_time) :
|
||||||
// clear the scripts, and set out script to our default scripts
|
// clear the scripts, and set out script to our default scripts
|
||||||
clearScriptsBeforeRunning();
|
clearScriptsBeforeRunning();
|
||||||
loadScript("http://public.highfidelity.io/scripts/defaultScripts.js");
|
loadScript("http://public.highfidelity.io/scripts/defaultScripts.js");
|
||||||
|
|
||||||
|
QMutexLocker locker(&_settingsMutex);
|
||||||
_settings->setValue("firstRun",QVariant(false));
|
_settings->setValue("firstRun",QVariant(false));
|
||||||
} else {
|
} else {
|
||||||
// do this as late as possible so that all required subsystems are inialized
|
// do this as late as possible so that all required subsystems are inialized
|
||||||
|
@ -352,16 +353,12 @@ Application::~Application() {
|
||||||
|
|
||||||
// make sure we don't call the idle timer any more
|
// make sure we don't call the idle timer any more
|
||||||
delete idleTimer;
|
delete idleTimer;
|
||||||
|
|
||||||
Menu::getInstance()->saveSettings();
|
|
||||||
_rearMirrorTools->saveSettings(_settings);
|
|
||||||
|
|
||||||
_sharedVoxelSystem.changeTree(new VoxelTree);
|
_sharedVoxelSystem.changeTree(new VoxelTree);
|
||||||
if (_voxelImporter) {
|
|
||||||
_voxelImporter->saveSettings(_settings);
|
saveSettings();
|
||||||
delete _voxelImporter;
|
|
||||||
}
|
delete _voxelImporter;
|
||||||
_settings->sync();
|
|
||||||
|
|
||||||
// let the avatar mixer know we're out
|
// let the avatar mixer know we're out
|
||||||
MyAvatar::sendKillAvatar();
|
MyAvatar::sendKillAvatar();
|
||||||
|
@ -395,35 +392,45 @@ Application::~Application() {
|
||||||
AccountManager::getInstance().destroy();
|
AccountManager::getInstance().destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Application::saveSettings() {
|
||||||
|
Menu::getInstance()->saveSettings();
|
||||||
|
_rearMirrorTools->saveSettings(_settings);
|
||||||
|
|
||||||
|
if (_voxelImporter) {
|
||||||
|
_voxelImporter->saveSettings(_settings);
|
||||||
|
}
|
||||||
|
_settings->sync();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Application::restoreSizeAndPosition() {
|
void Application::restoreSizeAndPosition() {
|
||||||
QSettings* settings = new QSettings(this);
|
|
||||||
QRect available = desktop()->availableGeometry();
|
QRect available = desktop()->availableGeometry();
|
||||||
|
|
||||||
settings->beginGroup("Window");
|
QMutexLocker locker(&_settingsMutex);
|
||||||
|
_settings->beginGroup("Window");
|
||||||
|
|
||||||
int x = (int)loadSetting(settings, "x", 0);
|
int x = (int)loadSetting(_settings, "x", 0);
|
||||||
int y = (int)loadSetting(settings, "y", 0);
|
int y = (int)loadSetting(_settings, "y", 0);
|
||||||
_window->move(x, y);
|
_window->move(x, y);
|
||||||
|
|
||||||
int width = (int)loadSetting(settings, "width", available.width());
|
int width = (int)loadSetting(_settings, "width", available.width());
|
||||||
int height = (int)loadSetting(settings, "height", available.height());
|
int height = (int)loadSetting(_settings, "height", available.height());
|
||||||
_window->resize(width, height);
|
_window->resize(width, height);
|
||||||
|
|
||||||
settings->endGroup();
|
_settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::storeSizeAndPosition() {
|
void Application::storeSizeAndPosition() {
|
||||||
QSettings* settings = new QSettings(this);
|
QMutexLocker locker(&_settingsMutex);
|
||||||
|
_settings->beginGroup("Window");
|
||||||
|
|
||||||
settings->beginGroup("Window");
|
_settings->setValue("width", _window->rect().width());
|
||||||
|
_settings->setValue("height", _window->rect().height());
|
||||||
|
|
||||||
settings->setValue("width", _window->rect().width());
|
_settings->setValue("x", _window->pos().x());
|
||||||
settings->setValue("height", _window->rect().height());
|
_settings->setValue("y", _window->pos().y());
|
||||||
|
|
||||||
settings->setValue("x", _window->pos().x());
|
_settings->endGroup();
|
||||||
settings->setValue("y", _window->pos().y());
|
|
||||||
|
|
||||||
settings->endGroup();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::initializeGL() {
|
void Application::initializeGL() {
|
||||||
|
@ -3177,35 +3184,37 @@ void Application::packetSent(quint64 length) {
|
||||||
|
|
||||||
void Application::loadScripts() {
|
void Application::loadScripts() {
|
||||||
// loads all saved scripts
|
// loads all saved scripts
|
||||||
QSettings* settings = new QSettings(this);
|
|
||||||
int size = settings->beginReadArray("Settings");
|
lockSettings();
|
||||||
|
int size = _settings->beginReadArray("Settings");
|
||||||
for (int i = 0; i < size; ++i){
|
for (int i = 0; i < size; ++i){
|
||||||
settings->setArrayIndex(i);
|
_settings->setArrayIndex(i);
|
||||||
QString string = settings->value("script").toString();
|
QString string = _settings->value("script").toString();
|
||||||
loadScript(string);
|
unlockSettings();
|
||||||
|
if (!string.isEmpty()) {
|
||||||
|
loadScript(string);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
settings->endArray();
|
QMutexLocker locker(&_settingsMutex);
|
||||||
|
_settings->endArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::clearScriptsBeforeRunning() {
|
void Application::clearScriptsBeforeRunning() {
|
||||||
// clears all scripts from the settings
|
// clears all scripts from the settings
|
||||||
QSettings* settings = new QSettings(this);
|
QMutexLocker locker(&_settingsMutex);
|
||||||
settings->beginWriteArray("Settings");
|
_settings->remove("Settings");
|
||||||
settings->endArray();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::saveScripts() {
|
void Application::saveScripts() {
|
||||||
// saves all current running scripts
|
// saves all current running scripts
|
||||||
QSettings* settings = new QSettings(this);
|
QMutexLocker locker(&_settingsMutex);
|
||||||
settings->beginWriteArray("Settings");
|
_settings->beginWriteArray("Settings");
|
||||||
for (int i = 0; i < getRunningScripts().size(); ++i){
|
for (int i = 0; i < getRunningScripts().size(); ++i){
|
||||||
settings->setArrayIndex(i);
|
_settings->setArrayIndex(i);
|
||||||
settings->setValue("script", getRunningScripts().at(i));
|
_settings->setValue("script", getRunningScripts().at(i));
|
||||||
}
|
}
|
||||||
|
_settings->endArray();
|
||||||
settings->endArray();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::stopAllScripts() {
|
void Application::stopAllScripts() {
|
||||||
|
@ -3346,7 +3355,10 @@ void Application::loadDialog() {
|
||||||
|
|
||||||
if (_previousScriptLocation.isEmpty()) {
|
if (_previousScriptLocation.isEmpty()) {
|
||||||
QString desktopLocation = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
|
QString desktopLocation = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
|
||||||
|
// Temporary fix to Qt bug: http://stackoverflow.com/questions/16194475
|
||||||
|
#ifdef __APPLE__
|
||||||
suggestedName = desktopLocation.append("/script.js");
|
suggestedName = desktopLocation.append("/script.js");
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
suggestedName = _previousScriptLocation;
|
suggestedName = _previousScriptLocation;
|
||||||
}
|
}
|
||||||
|
@ -3355,9 +3367,11 @@ void Application::loadDialog() {
|
||||||
tr("JavaScript Files (*.js)"));
|
tr("JavaScript Files (*.js)"));
|
||||||
if (!fileNameString.isEmpty()) {
|
if (!fileNameString.isEmpty()) {
|
||||||
_previousScriptLocation = fileNameString;
|
_previousScriptLocation = fileNameString;
|
||||||
|
QMutexLocker locker(&_settingsMutex);
|
||||||
|
_settings->setValue("LastScriptLocation", _previousScriptLocation);
|
||||||
|
|
||||||
|
loadScript(fileNameString);
|
||||||
}
|
}
|
||||||
|
|
||||||
loadScript(fileNameString);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::loadScriptURLDialog() {
|
void Application::loadScriptURLDialog() {
|
||||||
|
|
|
@ -182,6 +182,8 @@ public:
|
||||||
/// if you need to access the application settings, use lockSettings()/unlockSettings()
|
/// if you need to access the application settings, use lockSettings()/unlockSettings()
|
||||||
QSettings* lockSettings() { _settingsMutex.lock(); return _settings; }
|
QSettings* lockSettings() { _settingsMutex.lock(); return _settings; }
|
||||||
void unlockSettings() { _settingsMutex.unlock(); }
|
void unlockSettings() { _settingsMutex.unlock(); }
|
||||||
|
|
||||||
|
void saveSettings();
|
||||||
|
|
||||||
QMainWindow* getWindow() { return _window; }
|
QMainWindow* getWindow() { return _window; }
|
||||||
NodeToOctreeSceneStats* getOcteeSceneStats() { return &_octreeServerSceneStats; }
|
NodeToOctreeSceneStats* getOcteeSceneStats() { return &_octreeServerSceneStats; }
|
||||||
|
|
Loading…
Reference in a new issue