mirror of
https://github.com/overte-org/overte.git
synced 2025-08-13 22:27:40 +02:00
cleanup for QA
added sorting
This commit is contained in:
parent
8f507942cf
commit
a1db20c5fc
6 changed files with 43 additions and 45 deletions
|
@ -13,16 +13,15 @@
|
|||
#include <QInputDialog>
|
||||
#include <QMessageBox>
|
||||
#include <QStandardPaths>
|
||||
#include <QQmlContext>
|
||||
|
||||
#include <Application.h>
|
||||
#include <OffscreenUi.h>
|
||||
#include <QQmlContext>
|
||||
#include <avatar/AvatarManager.h>
|
||||
|
||||
#include "MainWindow.h"
|
||||
#include "Menu.h"
|
||||
|
||||
#include <avatar/AvatarManager.h>
|
||||
|
||||
#include "AvatarBookmarks.h"
|
||||
#include <QtQuick/QQuickWindow>
|
||||
|
||||
|
@ -41,12 +40,6 @@ void AvatarBookmarks::setupMenus(Menu* menubar, MenuWrapper* menu) {
|
|||
|
||||
Bookmarks::setupMenus(menubar, menu);
|
||||
|
||||
// connect bookmarkAvatarButton in AvatarPreferencesDialog.qml
|
||||
|
||||
// TODO: attempt at connecting to bookmarkAvatarSignal in AvatarPreferencesDialog.qml
|
||||
// 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
|
||||
|
||||
auto offscreenUi = DependencyManager::get<OffscreenUi>();
|
||||
auto context = offscreenUi->getRootContext();
|
||||
context->setContextProperty("avatarBookmarks", this);
|
||||
|
@ -61,11 +54,6 @@ 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 until cause is determined
|
||||
DependencyManager::get<OffscreenUi>()->hide(QString("AvatarPreferencesDialog"));
|
||||
|
||||
bool ok = false;
|
||||
auto bookmarkName = OffscreenUi::getText(OffscreenUi::ICON_PLACEMARK, "Bookmark Avatar", "Name", QString(), &ok);
|
||||
if (!ok) {
|
||||
|
@ -87,6 +75,6 @@ void AvatarBookmarks::addBookmarkToMenu(Menu* menubar, const QString& name, cons
|
|||
changeAction->setData(address);
|
||||
connect(changeAction, SIGNAL(triggered()), this, SLOT(changeToBookmarkedAvatar()));
|
||||
|
||||
menubar->addActionToQMenuAndActionHash(_bookmarksMenu, changeAction,
|
||||
name, 0, QAction::NoRole);
|
||||
menubar->addActionToQMenuAndActionHash(_bookmarksMenu, changeAction, name, 0, QAction::NoRole);
|
||||
Bookmarks::sortActions(_bookmarksMenu);
|
||||
}
|
||||
|
|
|
@ -28,11 +28,11 @@ public slots:
|
|||
protected:
|
||||
void addBookmarkToMenu(Menu* menubar, const QString& name, const QString& address) override;
|
||||
|
||||
private slots:
|
||||
void changeToBookmarkedAvatar();
|
||||
|
||||
private:
|
||||
const QString AvatarBookmarks_FILENAME = "avatarbookmarks.json";
|
||||
|
||||
private slots:
|
||||
void changeToBookmarkedAvatar();
|
||||
};
|
||||
|
||||
#endif // hifi_AvatarBookmarks_h
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
|
||||
#include "Bookmarks.h"
|
||||
|
||||
|
||||
Bookmarks::Bookmarks() {
|
||||
}
|
||||
|
||||
|
@ -84,7 +83,6 @@ void Bookmarks::addBookmark(const QString& bookmarkName, const QString& bookmark
|
|||
|
||||
addBookmarkToMenu(menubar, bookmarkName, bookmarkAddress);
|
||||
insert(bookmarkName, bookmarkAddress); // Overwrites any item with the same bookmarkName.
|
||||
|
||||
enableMenuItems(true);
|
||||
}
|
||||
|
||||
|
@ -114,6 +112,21 @@ bool Bookmarks::contains(const QString& name) const {
|
|||
return _bookmarks.contains(name);
|
||||
}
|
||||
|
||||
bool Bookmarks::sortOrder(QAction* a, QAction* b) {
|
||||
return a->text().toLower() < b->text().toLower();
|
||||
}
|
||||
|
||||
void Bookmarks::sortActions(MenuWrapper* menuWrapper) {
|
||||
QList<QAction*> tmpActions = menuWrapper->actions();
|
||||
qSort(tmpActions.begin(), tmpActions.end(), sortOrder);
|
||||
for (QAction* action : menuWrapper->actions()) {
|
||||
menuWrapper->removeAction(action);
|
||||
}
|
||||
for (QAction* action : tmpActions) {
|
||||
menuWrapper->addAction(action);
|
||||
}
|
||||
}
|
||||
|
||||
QString Bookmarks::addressForBookmark(const QString& name) const {
|
||||
return _bookmarks.value(name).toString();
|
||||
}
|
||||
|
|
|
@ -33,26 +33,28 @@ public:
|
|||
public slots:
|
||||
virtual void addBookmark(const QString& bookmarkName, const QString& bookmarkAddress);
|
||||
|
||||
protected slots:
|
||||
void deleteBookmark();
|
||||
|
||||
protected:
|
||||
virtual void addBookmarkToMenu(Menu* menubar, const QString& name, const QString& address) = 0;
|
||||
void enableMenuItems(bool enabled);
|
||||
void readFromFile();
|
||||
void insert(const QString& name, const QString& address); // Overwrites any existing entry with same name.
|
||||
void sortActions(MenuWrapper* menuWrapper);
|
||||
|
||||
QVariantMap _bookmarks; // { name: url, ... }
|
||||
|
||||
QPointer<MenuWrapper> _bookmarksMenu;
|
||||
QPointer<QAction> _deleteBookmarksAction;
|
||||
|
||||
QString _bookmarksFilename;
|
||||
|
||||
void insert(const QString& name, const QString& address); // Overwrites any existing entry with same name.
|
||||
|
||||
protected slots:
|
||||
void deleteBookmark();
|
||||
|
||||
private:
|
||||
void remove(const QString& name);
|
||||
bool contains(const QString& name) const;
|
||||
static bool sortOrder(QAction* a, QAction* b);
|
||||
|
||||
void readFromFile();
|
||||
void persistToFile();
|
||||
|
||||
void enableMenuItems(bool enabled);
|
||||
virtual void addBookmarkToMenu(Menu* menubar, const QString& name, const QString& address) = 0;
|
||||
void removeBookmarkFromMenu(Menu* menubar, const QString& name);
|
||||
};
|
||||
|
||||
|
|
|
@ -40,20 +40,15 @@ void LocationBookmarks::setupMenus(Menu* menubar, MenuWrapper* menu) {
|
|||
_bookmarksMenu = menu->addMenu(MenuOption::LocationBookmarks);
|
||||
_deleteBookmarksAction = menubar->addActionToQMenuAndActionHash(menu, MenuOption::DeleteBookmark);
|
||||
QObject::connect(_deleteBookmarksAction, SIGNAL(triggered()), this, SLOT(deleteBookmark()), Qt::QueuedConnection);
|
||||
|
||||
|
||||
Bookmarks::setupMenus(menubar, menu);
|
||||
}
|
||||
|
||||
void LocationBookmarks::setHomeLocation() {
|
||||
Menu* menubar = Menu::getInstance();
|
||||
QString bookmarkName = HOME_BOOKMARK;
|
||||
auto addressManager = DependencyManager::get<AddressManager>();
|
||||
QString bookmarkAddress = addressManager->currentAddress().toString();
|
||||
|
||||
addBookmarkToMenu(menubar, bookmarkName, bookmarkAddress);
|
||||
insert(bookmarkName, bookmarkAddress); // Overwrites any item with the same bookmarkName.
|
||||
|
||||
enableMenuItems(true);
|
||||
Bookmarks::addBookmark(HOME_BOOKMARK, bookmarkAddress);
|
||||
Bookmarks::sortActions(_bookmarksMenu);
|
||||
}
|
||||
|
||||
void LocationBookmarks::teleportToBookmark() {
|
||||
|
@ -83,7 +78,7 @@ void LocationBookmarks::addBookmarkToMenu(Menu* menubar, const QString& name, co
|
|||
QAction* teleportAction = _bookmarksMenu->newAction();
|
||||
teleportAction->setData(address);
|
||||
connect(teleportAction, SIGNAL(triggered()), this, SLOT(teleportToBookmark()));
|
||||
|
||||
menubar->addActionToQMenuAndActionHash(_bookmarksMenu, teleportAction,
|
||||
name, 0, QAction::NoRole);
|
||||
|
||||
menubar->addActionToQMenuAndActionHash(_bookmarksMenu, teleportAction, name, 0, QAction::NoRole);
|
||||
Bookmarks::sortActions(_bookmarksMenu);
|
||||
}
|
||||
|
|
|
@ -29,12 +29,12 @@ public slots:
|
|||
protected:
|
||||
void addBookmarkToMenu(Menu* menubar, const QString& name, const QString& address) override;
|
||||
|
||||
private:
|
||||
const QString LocationBookmarks_FILENAME = "bookmarks.json";
|
||||
|
||||
private slots:
|
||||
void setHomeLocation();
|
||||
void teleportToBookmark();
|
||||
|
||||
private:
|
||||
const QString LocationBookmarks_FILENAME = "bookmarks.json";
|
||||
};
|
||||
|
||||
#endif // hifi_LocationBookmarks_h
|
||||
|
|
Loading…
Reference in a new issue