mirror of
https://github.com/lubosz/overte.git
synced 2025-08-07 16:41:02 +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<GrabManager>();
|
||||||
DependencyManager::set<AvatarPackager>();
|
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;
|
return previousSessionCrashed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ public:
|
||||||
Bookmarks();
|
Bookmarks();
|
||||||
|
|
||||||
virtual void setupMenus(Menu* menubar, MenuWrapper* menu) = 0;
|
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;
|
QString addressForBookmark(const QString& name) const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -37,7 +38,6 @@ protected:
|
||||||
virtual void addBookmarkToMenu(Menu* menubar, const QString& name, const QVariant& bookmark) = 0;
|
virtual void addBookmarkToMenu(Menu* menubar, const QString& name, const QVariant& bookmark) = 0;
|
||||||
void enableMenuItems(bool enabled);
|
void enableMenuItems(bool enabled);
|
||||||
virtual void readFromFile();
|
virtual void readFromFile();
|
||||||
void insert(const QString& name, const QVariant& address); // Overwrites any existing entry with same name.
|
|
||||||
void sortActions(Menu* menubar, MenuWrapper* menu);
|
void sortActions(Menu* menubar, MenuWrapper* menu);
|
||||||
int getMenuItemLocation(QList<QAction*> actions, const QString& name) const;
|
int getMenuItemLocation(QList<QAction*> actions, const QString& name) const;
|
||||||
void removeBookmarkFromMenu(Menu* menubar, const QString& name);
|
void removeBookmarkFromMenu(Menu* menubar, const QString& name);
|
||||||
|
|
|
@ -67,6 +67,10 @@ QString LocationBookmarks::getHomeLocationAddress() {
|
||||||
return addressForBookmark(HOME_BOOKMARK);
|
return addressForBookmark(HOME_BOOKMARK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString LocationBookmarks::getAddress(const QString& bookmarkName) {
|
||||||
|
return addressForBookmark(bookmarkName);
|
||||||
|
}
|
||||||
|
|
||||||
void LocationBookmarks::teleportToBookmark() {
|
void LocationBookmarks::teleportToBookmark() {
|
||||||
QAction* action = qobject_cast<QAction*>(sender());
|
QAction* action = qobject_cast<QAction*>(sender());
|
||||||
QString address = action->data().toString();
|
QString address = action->data().toString();
|
||||||
|
|
|
@ -34,6 +34,13 @@ public:
|
||||||
void setupMenus(Menu* menubar, MenuWrapper* menu) override;
|
void setupMenus(Menu* menubar, MenuWrapper* menu) override;
|
||||||
static const QString HOME_BOOKMARK;
|
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:
|
public slots:
|
||||||
|
|
||||||
/**jsdoc
|
/**jsdoc
|
||||||
|
@ -48,7 +55,7 @@ public slots:
|
||||||
void setHomeLocationToAddress(const QVariant& address);
|
void setHomeLocationToAddress(const QVariant& address);
|
||||||
|
|
||||||
/**jsdoc
|
/**jsdoc
|
||||||
* @function LocationBookmarksgetHomeLocationAddress
|
* @function LocationBookmarks.getHomeLocationAddress
|
||||||
* @returns {string} The url for the home location bookmark
|
* @returns {string} The url for the home location bookmark
|
||||||
*/
|
*/
|
||||||
QString getHomeLocationAddress();
|
QString getHomeLocationAddress();
|
||||||
|
|
|
@ -85,6 +85,7 @@ int main(int argc, const char* argv[]) {
|
||||||
QCommandLineOption overrideScriptsPathOption(SCRIPTS_SWITCH, "set scripts <path>", "path");
|
QCommandLineOption overrideScriptsPathOption(SCRIPTS_SWITCH, "set scripts <path>", "path");
|
||||||
QCommandLineOption responseTokensOption("tokens", "set response tokens <json>", "json");
|
QCommandLineOption responseTokensOption("tokens", "set response tokens <json>", "json");
|
||||||
QCommandLineOption displayNameOption("displayName", "set user display name <string>", "string");
|
QCommandLineOption displayNameOption("displayName", "set user display name <string>", "string");
|
||||||
|
QCommandLineOption setBookmarkOption("setBookmark", "set bookmark key=value pair", "string");
|
||||||
|
|
||||||
parser.addOption(urlOption);
|
parser.addOption(urlOption);
|
||||||
parser.addOption(noLauncherOption);
|
parser.addOption(noLauncherOption);
|
||||||
|
@ -97,6 +98,7 @@ int main(int argc, const char* argv[]) {
|
||||||
parser.addOption(allowMultipleInstancesOption);
|
parser.addOption(allowMultipleInstancesOption);
|
||||||
parser.addOption(responseTokensOption);
|
parser.addOption(responseTokensOption);
|
||||||
parser.addOption(displayNameOption);
|
parser.addOption(displayNameOption);
|
||||||
|
parser.addOption(setBookmarkOption);
|
||||||
|
|
||||||
if (!parser.parse(arguments)) {
|
if (!parser.parse(arguments)) {
|
||||||
std::cout << parser.errorText().toStdString() << std::endl; // Avoid Qt log spam
|
std::cout << parser.errorText().toStdString() << std::endl; // Avoid Qt log spam
|
||||||
|
|
Loading…
Reference in a new issue