diff --git a/interface/src/AvatarBookmarks.cpp b/interface/src/AvatarBookmarks.cpp index c799fb9ef2..8afddf1b83 100644 --- a/interface/src/AvatarBookmarks.cpp +++ b/interface/src/AvatarBookmarks.cpp @@ -46,7 +46,7 @@ void AvatarBookmarks::setupMenus(Menu* menubar, MenuWrapper* menu) { // the OffscreenUi doesn't seem available this early to recurse through to find the root object where the signal is declared // I've added a delay for now - // The OffscreenUi also doesn't create the object till it is shown first, so I'm forcing it to show so the object exists + // The OffscreenUi also doesn't create the object until it is shown first, so I'm forcing it to show so the object exists QTimer::singleShot(2000, [&] { auto offscreenUi = DependencyManager::get(); offscreenUi->show(QString("hifi/dialogs/AvatarPreferencesDialog.qml"), "AvatarPreferencesDialog"); @@ -68,7 +68,7 @@ void AvatarBookmarks::changeToBookmarkedAvatar() { void AvatarBookmarks::addBookmark() { // TODO: if you press the Bookmark Avatar button in the dialog it seems to maintain focus. // Clicking afterwards results in multiple calls - // hide enforced till cause is determined + // hide enforced until cause is determined DependencyManager::get()->hide(QString("AvatarPreferencesDialog")); bool ok = false; @@ -84,26 +84,7 @@ void AvatarBookmarks::addBookmark() { auto myAvatar = DependencyManager::get()->getMyAvatar(); const QString& bookmarkAddress = myAvatar->getSkeletonModelURL().toString(); - - Menu* menubar = Menu::getInstance(); - if (contains(bookmarkName)) { - auto offscreenUi = DependencyManager::get(); - auto duplicateBookmarkMessage = offscreenUi->createMessageBox(OffscreenUi::ICON_WARNING, "Duplicate Bookmark", - "The bookmark name you entered already exists in your list.", - QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); - duplicateBookmarkMessage->setProperty("informativeText", "Would you like to overwrite it?"); - - auto result = offscreenUi->waitForMessageBoxResult(duplicateBookmarkMessage); - if (result != QMessageBox::Yes) { - return; - } - removeBookmarkFromMenu(menubar, bookmarkName); - } - - addBookmarkToMenu(menubar, bookmarkName, bookmarkAddress); - insert(bookmarkName, bookmarkAddress); // Overwrites any item with the same bookmarkName. - - enableMenuItems(true); + Bookmarks::addBookmark(bookmarkName, bookmarkAddress); } void AvatarBookmarks::addBookmarkToMenu(Menu* menubar, const QString& name, const QString& address) { diff --git a/interface/src/AvatarBookmarks.h b/interface/src/AvatarBookmarks.h index 9dfe274f65..6c58ea7861 100644 --- a/interface/src/AvatarBookmarks.h +++ b/interface/src/AvatarBookmarks.h @@ -20,16 +20,16 @@ class AvatarBookmarks: public Bookmarks { public: AvatarBookmarks(); - virtual void setupMenus(Menu* menubar, MenuWrapper* menu) override; + void setupMenus(Menu* menubar, MenuWrapper* menu) override; public slots: - virtual void addBookmark() override; + void addBookmark(); protected: - virtual void addBookmarkToMenu(Menu* menubar, const QString& name, const QString& address) override; + void addBookmarkToMenu(Menu* menubar, const QString& name, const QString& address) override; private slots: -void changeToBookmarkedAvatar(); + void changeToBookmarkedAvatar(); private: const QString AvatarBookmarks_FILENAME = "avatarbookmarks.json"; diff --git a/interface/src/Bookmarks.cpp b/interface/src/Bookmarks.cpp index d63d3d6bef..4462cb048c 100644 --- a/interface/src/Bookmarks.cpp +++ b/interface/src/Bookmarks.cpp @@ -66,6 +66,28 @@ void Bookmarks::deleteBookmark() { } } +void Bookmarks::addBookmark(const QString& bookmarkName, const QString& bookmarkAddress) { + Menu* menubar = Menu::getInstance(); + if (contains(bookmarkName)) { + auto offscreenUi = DependencyManager::get(); + auto duplicateBookmarkMessage = offscreenUi->createMessageBox(OffscreenUi::ICON_WARNING, "Duplicate Bookmark", + "The bookmark name you entered already exists in your list.", + QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); + duplicateBookmarkMessage->setProperty("informativeText", "Would you like to overwrite it?"); + + auto result = offscreenUi->waitForMessageBoxResult(duplicateBookmarkMessage); + if (result != QMessageBox::Yes) { + return; + } + removeBookmarkFromMenu(menubar, bookmarkName); + } + + addBookmarkToMenu(menubar, bookmarkName, bookmarkAddress); + insert(bookmarkName, bookmarkAddress); // Overwrites any item with the same bookmarkName. + + enableMenuItems(true); +} + void Bookmarks::insert(const QString& name, const QString& address) { _bookmarks.insert(name, address); diff --git a/interface/src/Bookmarks.h b/interface/src/Bookmarks.h index fbc0d41f33..8e6adb6d61 100644 --- a/interface/src/Bookmarks.h +++ b/interface/src/Bookmarks.h @@ -31,7 +31,7 @@ public: QString addressForBookmark(const QString& name) const; public slots: - virtual void addBookmark() = 0; + virtual void addBookmark(const QString& bookmarkName, const QString& bookmarkAddress); protected slots: void deleteBookmark(); diff --git a/interface/src/LocationBookmarks.cpp b/interface/src/LocationBookmarks.cpp index 14bee4314c..52bcc94c9f 100644 --- a/interface/src/LocationBookmarks.cpp +++ b/interface/src/LocationBookmarks.cpp @@ -76,26 +76,7 @@ void LocationBookmarks::addBookmark() { auto addressManager = DependencyManager::get(); QString bookmarkAddress = addressManager->currentAddress().toString(); - - Menu* menubar = Menu::getInstance(); - if (contains(bookmarkName)) { - auto offscreenUi = DependencyManager::get(); - auto duplicateBookmarkMessage = offscreenUi->createMessageBox(OffscreenUi::ICON_WARNING, "Duplicate Bookmark", - "The bookmark name you entered already exists in your list.", - QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); - duplicateBookmarkMessage->setProperty("informativeText", "Would you like to overwrite it?"); - - auto result = offscreenUi->waitForMessageBoxResult(duplicateBookmarkMessage); - if (result != QMessageBox::Yes) { - return; - } - removeBookmarkFromMenu(menubar, bookmarkName); - } - - addBookmarkToMenu(menubar, bookmarkName, bookmarkAddress); - insert(bookmarkName, bookmarkAddress); // Overwrites any item with the same bookmarkName. - - enableMenuItems(true); + Bookmarks::addBookmark(bookmarkName, bookmarkAddress); } void LocationBookmarks::addBookmarkToMenu(Menu* menubar, const QString& name, const QString& address) { diff --git a/interface/src/LocationBookmarks.h b/interface/src/LocationBookmarks.h index 19059098e1..40d08e57e9 100644 --- a/interface/src/LocationBookmarks.h +++ b/interface/src/LocationBookmarks.h @@ -20,14 +20,14 @@ class LocationBookmarks: public Bookmarks { public: LocationBookmarks(); - virtual void setupMenus(Menu* menubar, MenuWrapper* menu) override; + void setupMenus(Menu* menubar, MenuWrapper* menu) override; static const QString HOME_BOOKMARK; public slots: - virtual void addBookmark() override; + void addBookmark(); protected: - virtual void addBookmarkToMenu(Menu* menubar, const QString& name, const QString& address) override; + void addBookmarkToMenu(Menu* menubar, const QString& name, const QString& address) override; private slots: void setHomeLocation();