https://highfidelity.fogbugz.com/f/cases/3714
Showing the changes to interface/src/LocationBookmarks.cpp (1 of 4 files). Show all
Unified · Split
| @@ -13,6 +13,7 @@ · 12 unmodified lines | |||
| 13 | #include <QInputDialog> | 13 | #include <QInputDialog> |
| 14 | #include <QMessageBox> | 14 | #include <QMessageBox> |
| 15 | #include <QStandardPaths> | 15 | #include <QStandardPaths> |
| 16 | //#include <QQmlEngine> | ||
| 16 | 17 | ||
| 17 | #include <AddressManager.h> | 18 | #include <AddressManager.h> |
| 18 | #include <Application.h> | 19 | #include <Application.h> |
| @@ -42,13 +43,13 @@ void LocationBookmarks::setupMenus(Menu* menubar, MenuWrapper* menu) { · 23 unmodified lines | |||
| 42 | QObject::connect(_deleteBookmarksAction, SIGNAL(triggered()), this, SLOT(deleteBookmark()), Qt::QueuedConnection); | 43 | QObject::connect(_deleteBookmarksAction, SIGNAL(triggered()), this, SLOT(deleteBookmark()), Qt::QueuedConnection); |
| 43 | 44 | ||
| 44 | Bookmarks::setupMenus(menubar, menu); | 45 | Bookmarks::setupMenus(menubar, menu); |
| 46 | Bookmarks::sortActions(menubar, _bookmarksMenu); | ||
| 45 | } | 47 | } |
| 46 | 48 | ||
| 47 | void LocationBookmarks::setHomeLocation() { | 49 | void LocationBookmarks::setHomeLocation() { |
| 48 | auto addressManager = DependencyManager::get<AddressManager>(); | 50 | auto addressManager = DependencyManager::get<AddressManager>(); |
| 49 | QString bookmarkAddress = addressManager->currentAddress().toString(); | 51 | QString bookmarkAddress = addressManager->currentAddress().toString(); |
| 50 | Bookmarks::addBookmark(HOME_BOOKMARK, bookmarkAddress); | 52 | Bookmarks::addBookmark(HOME_BOOKMARK, bookmarkAddress); |
| 51 | Bookmarks::sortActions(_bookmarksMenu); | ||
| 52 | } | 53 | } |
| 53 | 54 | ||
| 54 | void LocationBookmarks::teleportToBookmark() { | 55 | void LocationBookmarks::teleportToBookmark() { |
| @@ -78,7 +79,16 @@ void LocationBookmarks::addBookmarkToMenu(Menu* menubar, const QString& name, co · 23 unmodified lines | |||
| 78 | QAction* teleportAction = _bookmarksMenu->newAction(); | 79 | QAction* teleportAction = _bookmarksMenu->newAction(); |
| 79 | teleportAction->setData(address); | 80 | teleportAction->setData(address); |
| 80 | connect(teleportAction, SIGNAL(triggered()), this, SLOT(teleportToBookmark())); | 81 | connect(teleportAction, SIGNAL(triggered()), this, SLOT(teleportToBookmark())); |
| 82 | if (!_isMenuSorted) { | ||
| 83 | menubar->addActionToQMenuAndActionHash(_bookmarksMenu, teleportAction, name, 0, QAction::NoRole); | ||
| 84 | } else { | ||
| 85 | // TODO: this is aggressive but all other alternative have proved less fruitful so far. | ||
| 86 | // having experimented with various pointer types, It is possible the issues are deeper routed in the MenuWrapper/Menu Qt/QML architecture | ||
| 87 | // further research did not produce better results | ||
| 81 | 88 | ||
| 82 | menubar->addActionToQMenuAndActionHash(_bookmarksMenu, teleportAction, name, 0, QAction::NoRole); | 89 | //menubar->addActionToQMenuAndActionHash(_bookmarksMenu, teleportAction, name, 0, QAction::NoRole, |
| 83 | Bookmarks::sortActions(_bookmarksMenu); | 90 | //Bookmarks::getMenuItemLocation(_bookmarksMenu->actions(), name)); |
| 91 | menubar->addActionToQMenuAndActionHash(_bookmarksMenu, teleportAction, name, 0, QAction::NoRole); | ||
| 92 | Bookmarks::sortActions(menubar, _bookmarksMenu); | ||
| 93 | } | ||
| 84 | } | 94 | } |