fix crash when pressing "Bookmark Avatar" button

also modified LocationBookmarks for consistency
This commit is contained in:
Triplelexx 2017-04-04 18:05:00 +01:00
parent 8aa3e56ad4
commit 01b13d7032
6 changed files with 16 additions and 15 deletions

View file

@ -82,6 +82,7 @@
#include <controllers/StateController.h>
#include <UserActivityLoggerScriptingInterface.h>
#include <LogHandler.h>
#include "LocationBookmarks.h"
#include <MainWindow.h>
#include <MappingRequest.h>
#include <MessagesClient.h>
@ -524,6 +525,7 @@ bool setupEssentials(int& argc, char** argv) {
DependencyManager::set<EntityScriptServerLogClient>();
DependencyManager::set<OctreeStatsProvider>(nullptr, qApp->getOcteeSceneStats());
DependencyManager::set<AvatarBookmarks>();
DependencyManager::set<LocationBookmarks>();
return previousSessionCrashed;
}
@ -698,9 +700,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
usleep(USECS_PER_MSEC * 50); // 20hz
}
_locationBookmarks = new LocationBookmarks(); // Before setting up the menu
_avatarBookmarks = new AvatarBookmarks();
// start the nodeThread so its event loop is running
QThread* nodeThread = new QThread(this);
nodeThread->setObjectName("NodeList Thread");
@ -2003,6 +2002,7 @@ void Application::initializeUi() {
rootContext->setContextProperty("ScriptDiscoveryService", DependencyManager::get<ScriptEngines>().data());
rootContext->setContextProperty("AudioDevice", AudioDeviceScriptingInterface::getInstance());
rootContext->setContextProperty("AvatarBookmarks", DependencyManager::get<AvatarBookmarks>().data());
rootContext->setContextProperty("LocationBookmarks", DependencyManager::get<LocationBookmarks>().data());
// Caches
rootContext->setContextProperty("AnimationCache", DependencyManager::get<AnimationCache>().data());
@ -5485,6 +5485,7 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEngine* scri
scriptEngine->registerGlobalObject("AudioStats", DependencyManager::get<AudioClient>()->getStats().data());
scriptEngine->registerGlobalObject("AudioScope", DependencyManager::get<AudioScope>().data());
scriptEngine->registerGlobalObject("AvatarBookmarks", DependencyManager::get<AvatarBookmarks>().data());
scriptEngine->registerGlobalObject("LocationBookmarks", DependencyManager::get<LocationBookmarks>().data());
// Caches
scriptEngine->registerGlobalObject("AnimationCache", DependencyManager::get<AnimationCache>().data());

View file

@ -52,8 +52,6 @@
#include "avatar/MyAvatar.h"
#include "BandwidthRecorder.h"
#include "LocationBookmarks.h"
#include "AvatarBookmarks.h"
#include "Camera.h"
#include "ConnectionMonitor.h"
#include "gpu/Context.h"
@ -264,8 +262,6 @@ public:
glm::mat4 getEyeProjection(int eye) const;
QRect getDesirableApplicationGeometry() const;
LocationBookmarks* getLocationBookmarks() const { return _locationBookmarks; }
AvatarBookmarks* getAvatarBookmarks() const { return _avatarBookmarks; }
virtual bool canAcceptURL(const QString& url) const override;
virtual bool acceptURL(const QString& url, bool defaultUpload = false) override;
@ -605,9 +601,6 @@ private:
bool _aboutToQuit;
QPointer<LocationBookmarks> _locationBookmarks;
QPointer<AvatarBookmarks> _avatarBookmarks;
bool _notifiedPacketVersionMismatchThisDomain;
QThread _settingsThread;

View file

@ -136,7 +136,6 @@ int Bookmarks::getMenuItemLocation(QList<QAction*> actions, const QString& name)
if (name.toLower().localeAwareCompare(action->text().toLower()) < 0) {
menuItemLocation = actions.indexOf(action);
break;
}
}
return menuItemLocation;

View file

@ -12,10 +12,12 @@
#ifndef hifi_LocationBookmarks_h
#define hifi_LocationBookmarks_h
#include <DependencyManager.h>
#include "Bookmarks.h"
class LocationBookmarks: public Bookmarks {
class LocationBookmarks : public Bookmarks, public Dependency {
Q_OBJECT
SINGLETON_DEPENDENCY
public:
LocationBookmarks();

View file

@ -32,6 +32,7 @@
#include "assets/ATPAssetMigrator.h"
#include "audio/AudioScope.h"
#include "avatar/AvatarManager.h"
#include "AvatarBookmarks.h"
#include "devices/DdeFaceTracker.h"
#include "devices/Faceshift.h"
#include "MainWindow.h"
@ -40,6 +41,7 @@
#include "ui/DialogsManager.h"
#include "ui/StandAloneJSConsole.h"
#include "InterfaceLogging.h"
#include "LocationBookmarks.h"
#if defined(Q_OS_MAC) || defined(Q_OS_WIN)
#include "SpeechRecognizer.h"
@ -195,7 +197,8 @@ Menu::Menu() {
qApp, SLOT(resetSensors()));
// Avatar > AvatarBookmarks related menus -- Note: the AvatarBookmarks class adds its own submenus here.
qApp->getAvatarBookmarks()->setupMenus(this, avatarMenu);
auto avatarBookmarks = DependencyManager::get<AvatarBookmarks>();
avatarBookmarks->setupMenus(this, avatarMenu);
// Display menu ----------------------------------
// FIXME - this is not yet matching Alan's spec because it doesn't have
@ -259,7 +262,8 @@ Menu::Menu() {
dialogsManager.data(), SLOT(toggleAddressBar()));
// Navigate > LocationBookmarks related menus -- Note: the LocationBookmarks class adds its own submenus here.
qApp->getLocationBookmarks()->setupMenus(this, navigateMenu);
auto locationBookmarks = DependencyManager::get<LocationBookmarks>();
locationBookmarks->setupMenus(this, navigateMenu);
// Navigate > Copy Address [advanced]
auto addressManager = DependencyManager::get<AddressManager>();

View file

@ -17,6 +17,7 @@
#include "DependencyManager.h"
#include "AddressManager.h"
#include "DialogsManager.h"
#include "LocationBookmarks.h"
HIFI_QML_DEF(AddressBarDialog)
@ -52,7 +53,8 @@ void AddressBarDialog::loadAddress(const QString& address, bool fromSuggestions)
void AddressBarDialog::loadHome() {
qDebug() << "Called LoadHome";
QString homeLocation = qApp->getLocationBookmarks()->addressForBookmark(LocationBookmarks::HOME_BOOKMARK);
auto locationBookmarks = DependencyManager::get<LocationBookmarks>();
QString homeLocation = locationBookmarks->addressForBookmark(LocationBookmarks::HOME_BOOKMARK);
const QString DEFAULT_HOME_LOCATION = "localhost";
if (homeLocation == "") {
homeLocation = DEFAULT_HOME_LOCATION;