mirror of
https://github.com/AleziaKurdis/overte.git
synced 2025-04-08 07:32:10 +02:00
Add --setBookmark and getAddress API
This commit is contained in:
parent
d43365b6d9
commit
a1b7392854
5 changed files with 28 additions and 2 deletions
|
@ -950,6 +950,19 @@ bool setupEssentials(int& argc, char** argv, bool runningMarkerExisted) {
|
|||
DependencyManager::set<GrabManager>();
|
||||
DependencyManager::set<AvatarPackager>();
|
||||
|
||||
QString setBookmarkValue = getCmdOption(argc, constArgv, "--setBookmark");
|
||||
if (!setBookmarkValue.isEmpty()) {
|
||||
// Bookmarks are expected to be in a name=url form.
|
||||
// An `=` character in the name or url is unsupported.
|
||||
auto parts = setBookmarkValue.split("=");
|
||||
if (parts.length() != 2) {
|
||||
qWarning() << "Malformed setBookmark argument: " << setBookmarkValue;
|
||||
} else {
|
||||
qDebug() << "Setting bookmark" << parts[0] << "to" << parts[1];
|
||||
DependencyManager::get<LocationBookmarks>()->insert(parts[0], parts[1]);
|
||||
}
|
||||
}
|
||||
|
||||
return previousSessionCrashed;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ public:
|
|||
Bookmarks();
|
||||
|
||||
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;
|
||||
|
||||
protected:
|
||||
|
@ -37,7 +38,6 @@ protected:
|
|||
virtual void addBookmarkToMenu(Menu* menubar, const QString& name, const QVariant& bookmark) = 0;
|
||||
void enableMenuItems(bool enabled);
|
||||
virtual void readFromFile();
|
||||
void insert(const QString& name, const QVariant& address); // Overwrites any existing entry with same name.
|
||||
void sortActions(Menu* menubar, MenuWrapper* menu);
|
||||
int getMenuItemLocation(QList<QAction*> actions, const QString& name) const;
|
||||
void removeBookmarkFromMenu(Menu* menubar, const QString& name);
|
||||
|
|
|
@ -67,6 +67,10 @@ QString LocationBookmarks::getHomeLocationAddress() {
|
|||
return addressForBookmark(HOME_BOOKMARK);
|
||||
}
|
||||
|
||||
QString LocationBookmarks::getAddress(const QString& bookmarkName) {
|
||||
return addressForBookmark(bookmarkName);
|
||||
}
|
||||
|
||||
void LocationBookmarks::teleportToBookmark() {
|
||||
QAction* action = qobject_cast<QAction*>(sender());
|
||||
QString address = action->data().toString();
|
||||
|
|
|
@ -34,6 +34,13 @@ public:
|
|||
void setupMenus(Menu* menubar, MenuWrapper* menu) override;
|
||||
static const QString HOME_BOOKMARK;
|
||||
|
||||
/**jsdoc
|
||||
* @function LocationBookmarks.getAddress
|
||||
* @param {string} bookmarkName Name of the bookmark to get the address for.
|
||||
* @returns {string} The url for the specified bookmark. If the bookmark does not exist, the empty string will be returned.
|
||||
*/
|
||||
Q_INVOKABLE QString getAddress(const QString& bookmarkName);
|
||||
|
||||
public slots:
|
||||
|
||||
/**jsdoc
|
||||
|
@ -48,7 +55,7 @@ public slots:
|
|||
void setHomeLocationToAddress(const QVariant& address);
|
||||
|
||||
/**jsdoc
|
||||
* @function LocationBookmarksgetHomeLocationAddress
|
||||
* @function LocationBookmarks.getHomeLocationAddress
|
||||
* @returns {string} The url for the home location bookmark
|
||||
*/
|
||||
QString getHomeLocationAddress();
|
||||
|
|
|
@ -85,6 +85,7 @@ int main(int argc, const char* argv[]) {
|
|||
QCommandLineOption overrideScriptsPathOption(SCRIPTS_SWITCH, "set scripts <path>", "path");
|
||||
QCommandLineOption responseTokensOption("tokens", "set response tokens <json>", "json");
|
||||
QCommandLineOption displayNameOption("displayName", "set user display name <string>", "string");
|
||||
QCommandLineOption setBookmarkOption("setBookmark", "set bookmark key=value pair", "string");
|
||||
|
||||
parser.addOption(urlOption);
|
||||
parser.addOption(noLauncherOption);
|
||||
|
@ -97,6 +98,7 @@ int main(int argc, const char* argv[]) {
|
|||
parser.addOption(allowMultipleInstancesOption);
|
||||
parser.addOption(responseTokensOption);
|
||||
parser.addOption(displayNameOption);
|
||||
parser.addOption(setBookmarkOption);
|
||||
|
||||
if (!parser.parse(arguments)) {
|
||||
std::cout << parser.errorText().toStdString() << std::endl; // Avoid Qt log spam
|
||||
|
|
Loading…
Reference in a new issue