void BookmarksToolBar::contextMenuRequested(const QPoint &position) { QAction *action = actionAt(position); QMenu menu; if (action) { QVariant variant = action->data(); Q_ASSERT(variant.canConvert<QModelIndex>()); QAction *menuAction = 0; if (!action->menu()) { menuAction = menu.addAction(tr("Open"), this, SLOT(openBookmarkInCurrentTab())); menuAction->setData(variant); menuAction = menu.addAction(tr("Open in New &Tab"), this, SLOT(openBookmarkInNewTab())); menuAction->setData(variant); menu.addSeparator(); } menuAction = menu.addAction(tr("Remove"), this, SLOT(removeBookmark())); menuAction->setData(variant); menu.addSeparator(); } menu.addAction(tr("Add Bookmark..."), this, SLOT(newBookmark())); menu.addAction(tr("Add Folder..."), this, SLOT(newFolder())); menu.exec(QCursor::pos()); }
void BookmarksToolBar::contextMenuRequested(const QPoint &position) { QToolButton *button = qobject_cast<QToolButton *>(childAt(position)); QMenu menu; QAction *action; if (button) { QModelIndex index; QVariant variant; BookmarkToolButton *bookmarkButton = qobject_cast<BookmarkToolButton *>(button); ModelMenu *modelMenu = qobject_cast<ModelMenu *>(button->menu()); if (modelMenu) { index = modelMenu->rootIndex(); variant.setValue(index); } else if (bookmarkButton) { index = bookmarkButton->index(); variant.setValue(index); action = menu.addAction(tr("Open"), this, SLOT(openBookmark())); action->setData(variant); action = menu.addAction(tr("Open in New &Tab"), this, SLOT(openBookmarkInNewTab())); action->setData(variant); menu.addSeparator(); } if (variant.isValid()) { action = menu.addAction(tr("Remove"), this, SLOT(removeBookmark())); action->setData(variant); } menu.addSeparator(); } action = menu.addAction(tr("Add Bookmark..."), this, SLOT(newBookmark())); action = menu.addAction(tr("Add Folder..."), this, SLOT(newFolder())); menu.exec(QCursor::pos()); }
void BookmarksManager::createContextMenu(const QPoint &pos) { QMenu menu; QAction* actNewTab = menu.addAction(QIcon::fromTheme("tab-new", QIcon(":/icons/menu/tab-new.png")), tr("Open in new tab")); QAction* actNewWindow = menu.addAction(QIcon::fromTheme("window-new"), tr("Open in new window")); QAction* actNewPrivateWindow = menu.addAction(QIcon(":icons/locationbar/privatebrowsing.png"), tr("Open in new private window")); menu.addSeparator(); menu.addAction(tr("New Bookmark"), this, SLOT(addBookmark())); menu.addAction(tr("New Folder"), this, SLOT(addFolder())); menu.addAction(tr("New Separator"), this, SLOT(addSeparator())); menu.addSeparator(); QAction* actDelete = menu.addAction(QIcon::fromTheme("edit-delete"), tr("Delete")); connect(actNewTab, SIGNAL(triggered()), this, SLOT(openBookmarkInNewTab())); connect(actNewWindow, SIGNAL(triggered()), this, SLOT(openBookmarkInNewWindow())); connect(actNewPrivateWindow, SIGNAL(triggered()), this, SLOT(openBookmarkInNewPrivateWindow())); connect(actDelete, SIGNAL(triggered()), this, SLOT(deleteBookmarks())); bool canBeDeleted = false; QList<BookmarkItem*> items = ui->tree->selectedBookmarks(); foreach (BookmarkItem* item, items) { if (m_bookmarks->canBeModified(item)) { canBeDeleted = true; break; } } if (!canBeDeleted) { actDelete->setDisabled(true); } if (!m_selectedBookmark || !m_selectedBookmark->isUrl()) { actNewTab->setDisabled(true); actNewWindow->setDisabled(true); actNewPrivateWindow->setDisabled(true); } menu.exec(pos); }
void BookmarksManager::bookmarkCtrlActivated(BookmarkItem* item) { openBookmarkInNewTab(item); }