summaryrefslogtreecommitdiff
path: root/src/panels/bookmarkscontextmenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/panels/bookmarkscontextmenu.cpp')
-rw-r--r--src/panels/bookmarkscontextmenu.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/panels/bookmarkscontextmenu.cpp b/src/panels/bookmarkscontextmenu.cpp
new file mode 100644
index 00000000..cfd0c41b
--- /dev/null
+++ b/src/panels/bookmarkscontextmenu.cpp
@@ -0,0 +1,39 @@
+/* ============================================================
+ * The rekonq project
+ * ============================================================
+ * SPDX-License-Identifier: GPL-3.0-only
+ * Copyright (C) 2022 aqua <aqua@iserlohn-fortress.net>
+ * ============================================================ */
+
+#include "bookmarkscontextmenu.hpp"
+#include "bookmarks/bookmarkstreemodel.hpp"
+#include "rekonqwindow.hpp"
+
+BookmarksContextMenu::BookmarksContextMenu(const QModelIndex &index, BookmarksTreeModel *model, QWidget *parent)
+ : QMenu(parent)
+{
+ auto *w = qobject_cast<RekonqWindow *>(parent->window());
+ Q_CHECK_PTR(w);
+
+ auto *item = model->item(index);
+ Q_CHECK_PTR(item);
+
+ addAction(tr("Open in current tab"), this,
+ [item, w]() { w->loadRequestedUrl(item->data(BookmarksTreeItem::Href).toUrl()); });
+ addAction(tr("Open in new tab"), this,
+ [item, w]() { w->loadRequestedUrl(item->data(BookmarksTreeItem::Href).toUrl(), rekonq::NewTab); });
+ // TODO Open in new window
+
+ addSeparator();
+
+ addAction(tr("Edit"));
+ addAction(tr("Remove"), this, [index, model]() { model->removeRow(index.row(), index.parent()); });
+
+ addSeparator();
+
+ addAction(tr("New Bookmark"), this,
+ [index, model]() { model->appendItem(BookmarksTreeItem::Bookmark, {}, model->parentFolder(index)); });
+ addAction(tr("New Folder"), this, [index, model]() { model->appendItem(BookmarksTreeItem::Folder, {}, index); });
+ addAction(tr("New Separator"), this,
+ [index, model]() { model->appendItem(BookmarksTreeItem::Separator, {}, index); });
+}