70 lines · 2.0 KB · C
RawDownload
 ////  Bookmarks.h//  interface/src////  Created by David Rowe on 13 Jan 2015.//  Copyright 2015 High Fidelity, Inc.//  Copyright 2024 Overte e.V.////  Distributed under the Apache License, Version 2.0.//  See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html// #ifndef hifi_Bookmarks_h#define hifi_Bookmarks_h #include <QMap>#include <QObject>#include <QPointer> class QAction;class QMenu;class Menu;class MenuWrapper; class Bookmarks: public QObject {    Q_OBJECT public:    Bookmarks() : _isMenuSorted(false) {}     virtual void setupMenus(Menu* menubar, MenuWrapper* menu) = 0;    void insert(const QString& name, const QVariant& address);  // Overwrites any existing entry with same name.    QString addressForBookmark(const QString& name) const;     const QString& getBookmarkError() const { return _bookmarkError; } protected:    void deleteBookmark(const QString& bookmarkName);     void addBookmarkToFile(const QString& bookmarkName, const QVariant& bookmark);    virtual void addBookmarkToMenu(Menu* menubar, const QString& name, const QVariant& bookmark) = 0;    void enableMenuItems(bool enabled);    virtual void readFromFile();    void sortActions(Menu* menubar, MenuWrapper* menu);    int getMenuItemLocation(QList<QAction*> actions, const QString& name) const;    void removeBookmarkFromMenu(Menu* menubar, const QString& name);    bool contains(const QString& name) const;    void remove(const QString& name);     QVariantMap _bookmarks;  // { name: url, ... }    QString _bookmarkError;    QPointer<MenuWrapper> _bookmarksMenu;    QPointer<QAction> _deleteBookmarksAction;    QString _bookmarksFilename;    bool _isMenuSorted; protected slots:    /*@jsdoc     * Prompts the user to delete a bookmark. The user can select the bookmark to delete in the dialog that is opened.     * @function LocationBookmarks.deleteBookmark     */    virtual void deleteBookmark(); private:    static bool sortOrder(QAction* a, QAction* b);     void persistToFile();}; #endif // hifi_Bookmarks_h