diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt
index 29943eb4cb..4e58d898af 100644
--- a/interface/CMakeLists.txt
+++ b/interface/CMakeLists.txt
@@ -74,11 +74,6 @@ file (GLOB_RECURSE QT_UI_FILES ui/*.ui)
# have qt5 wrap them and generate the appropriate header files
qt5_wrap_ui(QT_UI_HEADERS "${QT_UI_FILES}")
-# grab the resource files in resources
-file (GLOB_RECURSE QT_RESOURCE_FILES resources/*.qrc)
-# have qt5 wrap them and generate the appropriate source files
-qt5_add_resources(QT_RESOURCES "${QT_RESOURCE_FILES}")
-
# add them to the interface source files
set(INTERFACE_SRCS ${INTERFACE_SRCS} "${QT_UI_HEADERS}" "${QT_RESOURCES}")
diff --git a/interface/resources/resources.qrc b/interface/resources/resources.qrc
deleted file mode 100644
index 196c71b743..0000000000
--- a/interface/resources/resources.qrc
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- styles/search.svg
- images/close.svg
- images/kill-script.svg
- images/reload.svg
- images/stop.svg
- images/pin.svg
- images/pinned.svg
-
-
diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp
index a7f2d7d7ec..9e812ac954 100644
--- a/interface/src/Application.cpp
+++ b/interface/src/Application.cpp
@@ -251,6 +251,7 @@ Application::Application(int& argc, char** argv, timeval &startup_time) :
QMetaObject::invokeMethod(&accountManager, "checkAndSignalForAccessToken", Qt::QueuedConnection);
_settings = new QSettings(this);
+ _numChangedSettings = 0;
// Check to see if the user passed in a command line option for loading a local
// Voxel File.
@@ -407,6 +408,7 @@ void Application::saveSettings() {
_voxelImporter->saveSettings(_settings);
}
_settings->sync();
+ _numChangedSettings = 0;
}
@@ -1322,6 +1324,9 @@ void Application::idle() {
// After finishing all of the above work, restart the idle timer, allowing 2ms to process events.
idleTimer->start(2);
}
+ if (_numChangedSettings > 0) {
+ saveSettings();
+ }
}
}
@@ -1668,6 +1673,7 @@ void Application::init() {
connect(_rearMirrorTools, SIGNAL(restoreView()), SLOT(restoreMirrorView()));
connect(_rearMirrorTools, SIGNAL(shrinkView()), SLOT(shrinkMirrorView()));
connect(_rearMirrorTools, SIGNAL(resetView()), SLOT(resetSensors()));
+ connect(_myAvatar, SIGNAL(transformChanged()), this, SLOT(bumpSettings()));
}
void Application::closeMirrorView() {
diff --git a/interface/src/Application.h b/interface/src/Application.h
index ed269226fe..6a14788caa 100644
--- a/interface/src/Application.h
+++ b/interface/src/Application.h
@@ -286,6 +286,8 @@ public slots:
void uploadHead();
void uploadSkeleton();
+ void bumpSettings() { ++_numChangedSettings; }
+
private slots:
void timer();
void idle();
@@ -376,6 +378,7 @@ private:
QNetworkAccessManager* _networkAccessManager;
QMutex _settingsMutex;
QSettings* _settings;
+ int _numChangedSettings;
QUndoStack _undoStack;
diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp
index 4b5d24e376..b5b1ea9e9c 100644
--- a/interface/src/Menu.cpp
+++ b/interface/src/Menu.cpp
@@ -695,6 +695,7 @@ QAction* Menu::addCheckableActionToQMenuAndActionHash(QMenu* destinationMenu,
QAction::NoRole, menuItemLocation);
action->setCheckable(true);
action->setChecked(checked);
+ connect(action, SIGNAL(changed()), Application::getInstance(), SLOT(bumpSettings()));
return action;
}
@@ -928,7 +929,6 @@ void Menu::goToLocation() {
QString currentLocation = QString("%1, %2, %3").arg(QString::number(avatarPos.x),
QString::number(avatarPos.y), QString::number(avatarPos.z));
-
QInputDialog coordinateDialog(Application::getInstance()->getWindow());
coordinateDialog.setWindowTitle("Go to Location");
coordinateDialog.setLabelText("Coordinate as x,y,z:");
diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp
index a4f4cce79d..a258cd341b 100644
--- a/interface/src/avatar/MyAvatar.cpp
+++ b/interface/src/avatar/MyAvatar.cpp
@@ -1167,6 +1167,7 @@ void MyAvatar::goToLocationFromResponse(const QJsonObject& jsonObject) {
glm::vec3 newPosition = glm::vec3(coordinateItems[0].toFloat(), coordinateItems[1].toFloat(),
coordinateItems[2].toFloat()) - newOrientation * IDENTITY_FRONT * DISTANCE_TO_USER;
setPosition(newPosition);
+ emit transformChanged();
}
}
diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h
index ec33847255..66ab322444 100644
--- a/interface/src/avatar/MyAvatar.h
+++ b/interface/src/avatar/MyAvatar.h
@@ -106,6 +106,9 @@ public slots:
glm::vec3 getThrust() { return _thrust; };
void setThrust(glm::vec3 newThrust) { _thrust = newThrust; }
+signals:
+ void transformChanged();
+
private:
bool _mousePressed;
float _bodyPitchDelta; // degrees
diff --git a/interface/src/location/LocationManager.cpp b/interface/src/location/LocationManager.cpp
index 7d22dde040..8009551b6c 100644
--- a/interface/src/location/LocationManager.cpp
+++ b/interface/src/location/LocationManager.cpp
@@ -118,8 +118,6 @@ void LocationManager::checkForMultipleDestinations() {
Application::getInstance()->getAvatar()->goToLocationFromResponse(_placeData);
return;
}
-
- emit locationChanged();
}
}
@@ -178,6 +176,7 @@ void LocationManager::goToOrientation(QString orientation) {
glm::quat avatarOrientation = myAvatar->getOrientation();
if (newAvatarOrientation != avatarOrientation) {
myAvatar->setOrientation(newAvatarOrientation);
+ emit myAvatar->transformChanged();
}
}
}
@@ -211,6 +210,7 @@ bool LocationManager::goToDestination(QString destination) {
qDebug("Going To Location: %f, %f, %f...", x, y, z);
myAvatar->setPosition(newAvatarPos);
+ emit myAvatar->transformChanged();
}
return true;
diff --git a/interface/src/location/LocationManager.h b/interface/src/location/LocationManager.h
index 26e1cb52d5..ac66b3d08b 100644
--- a/interface/src/location/LocationManager.h
+++ b/interface/src/location/LocationManager.h
@@ -48,7 +48,6 @@ private:
signals:
void creationCompleted(LocationManager::NamedLocationCreateResponse response);
void multipleDestinationsFound(const QJsonObject& userData, const QJsonObject& placeData);
- void locationChanged();
private slots:
void namedLocationDataReceived(const QJsonObject& data);
diff --git a/interface/src/ui/PreferencesDialog.cpp b/interface/src/ui/PreferencesDialog.cpp
index d1c9b4f6ca..a14e80e62f 100644
--- a/interface/src/ui/PreferencesDialog.cpp
+++ b/interface/src/ui/PreferencesDialog.cpp
@@ -140,6 +140,7 @@ void PreferencesDialog::savePreferences() {
if (shouldDispatchIdentityPacket) {
myAvatar->sendIdentityPacket();
+ Application::getInstance()->bumpSettings();
}
myAvatar->getHead()->setPupilDilation(ui.pupilDilationSlider->value() / (float)ui.pupilDilationSlider->maximum());
diff --git a/interface/src/ui/RunningScriptsWidget.cpp b/interface/src/ui/RunningScriptsWidget.cpp
index dc9ae7c5f8..9a9a1c7486 100644
--- a/interface/src/ui/RunningScriptsWidget.cpp
+++ b/interface/src/ui/RunningScriptsWidget.cpp
@@ -77,7 +77,7 @@ void RunningScriptsWidget::setRunningScripts(const QStringList& list)
scriptName->setToolTip(list.at(i));
scriptName->setTextAlignment(Qt::AlignCenter);
QTableWidgetItem *closeIcon = new QTableWidgetItem;
- closeIcon->setIcon(QIcon(":/images/kill-script.svg"));
+ closeIcon->setIcon(QIcon(Application::resourcesPath() + "/images/kill-script.svg"));
ui->runningScriptsTableWidget->setItem(i, 0, scriptName);
ui->runningScriptsTableWidget->setItem(i, 1, closeIcon);
diff --git a/interface/ui/chatWindow.ui b/interface/ui/chatWindow.ui
index c46e692fc6..9f1f0527b8 100644
--- a/interface/ui/chatWindow.ui
+++ b/interface/ui/chatWindow.ui
@@ -100,9 +100,9 @@
-
- :/images/pin.svg
- :/images/pinned.svg:/images/pin.svg
+
+ ../resources/images/pin.svg
+ ../resources/images/pinned.svg../resources/images/pin.svg
true
@@ -139,8 +139,8 @@
-
- :/images/close.svg:/images/close.svg
+
+ ../resources/images/close.svg../resources/images/close.svg
true
@@ -239,9 +239,7 @@
messagePlainTextEdit
messagesScrollArea
-
-
-
+
togglePinnedButton
diff --git a/interface/ui/runningScriptsWidget.ui b/interface/ui/runningScriptsWidget.ui
index 9494d4ed09..c7fc9e43e8 100644
--- a/interface/ui/runningScriptsWidget.ui
+++ b/interface/ui/runningScriptsWidget.ui
@@ -70,8 +70,8 @@ border-radius: 6px;
Reload All
-
- :/images/reload.svg:/images/reload.svg
+
+ ../resources/images/reload.svg../resources/images/reload.svg
@@ -95,8 +95,8 @@ border-radius: 6px;
Stop All
-
- :/images/stop.svg:/images/stop.svg
+
+ ../resources/images/stop.svg../resources/images/stop.svg
@@ -166,8 +166,8 @@ border-radius: 6px;
-
- :/images/close.svg:/images/close.svg
+
+ ../resources/images/close.svg../resources/images/close.svg
@@ -241,8 +241,6 @@ border-radius: 6px;
-
-
-
+