mirror of
https://github.com/overte-org/overte.git
synced 2025-08-03 23:03:20 +02:00
move more Bookmark functionality into base class
This commit is contained in:
parent
bda1d54209
commit
d1eee19d7d
6 changed files with 34 additions and 50 deletions
|
@ -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>();
|
||||
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<OffscreenUi>()->hide(QString("AvatarPreferencesDialog"));
|
||||
|
||||
bool ok = false;
|
||||
|
@ -84,26 +84,7 @@ void AvatarBookmarks::addBookmark() {
|
|||
|
||||
auto myAvatar = DependencyManager::get<AvatarManager>()->getMyAvatar();
|
||||
const QString& bookmarkAddress = myAvatar->getSkeletonModelURL().toString();
|
||||
|
||||
Menu* menubar = Menu::getInstance();
|
||||
if (contains(bookmarkName)) {
|
||||
auto offscreenUi = DependencyManager::get<OffscreenUi>();
|
||||
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) {
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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<OffscreenUi>();
|
||||
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);
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -76,26 +76,7 @@ void LocationBookmarks::addBookmark() {
|
|||
|
||||
auto addressManager = DependencyManager::get<AddressManager>();
|
||||
QString bookmarkAddress = addressManager->currentAddress().toString();
|
||||
|
||||
Menu* menubar = Menu::getInstance();
|
||||
if (contains(bookmarkName)) {
|
||||
auto offscreenUi = DependencyManager::get<OffscreenUi>();
|
||||
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) {
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue