diff options
Diffstat (limited to 'src/panels/bookmarkscontextmenu.cpp')
-rw-r--r-- | src/panels/bookmarkscontextmenu.cpp | 39 |
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); }); +} |