void KBookmarkMenu::addEditBookmarks() { if ((m_pOwner && !m_pOwner->enableOption(KBookmarkOwner::ShowEditBookmark)) || !KAuthorized::authorizeKAction(QStringLiteral("bookmarks"))) { return; } QAction *m_paEditBookmarks = m_actionCollection->addAction(KStandardAction::EditBookmarks, QStringLiteral("edit_bookmarks"), m_pManager, SLOT(slotEditBookmarks())); m_parentMenu->addAction(m_paEditBookmarks); m_paEditBookmarks->setToolTip(tr("Edit your bookmark collection in a separate window")); m_paEditBookmarks->setStatusTip(m_paEditBookmarks->toolTip()); }
KonqSidebarBookmarkModule::KonqSidebarBookmarkModule( KonqSidebarTree * parentTree ) : QObject( 0L ), KonqSidebarTreeModule( parentTree ), m_topLevelItem( 0L ), m_ignoreOpenChange(true) { // formats handled by KBookmarkDrag: QStringList formats; formats << "text/uri-list" << "application/x-xbel" << "text/plain"; tree()->setDropFormats(formats); connect(tree(), SIGNAL(moved(QListViewItem*,QListViewItem*,QListViewItem*)), this, SLOT(slotMoved(QListViewItem*,QListViewItem*,QListViewItem*))); connect(tree(), SIGNAL(dropped(KListView*,QDropEvent*,QListViewItem*,QListViewItem*)), this, SLOT(slotDropped(KListView*,QDropEvent*,QListViewItem*,QListViewItem*))); connect(tree(), SIGNAL(expanded(QListViewItem*)), this, SLOT(slotOpenChange(QListViewItem*))); connect(tree(), SIGNAL(collapsed(QListViewItem*)), this, SLOT(slotOpenChange(QListViewItem*))); m_collection = new KActionCollection( this, "bookmark actions" ); (void) new KAction( i18n("&Create New Folder"), "folder_new", 0, this, SLOT( slotCreateFolder() ), m_collection, "create_folder"); (void) new KAction( i18n("Delete Folder"), "editdelete", 0, this, SLOT( slotDelete() ), m_collection, "delete_folder"); (void) new KAction( i18n("Delete Bookmark"), "editdelete", 0, this, SLOT( slotDelete() ), m_collection, "delete_bookmark"); (void) new KAction( i18n("Properties"), "edit", 0, this, SLOT( slotProperties() ), m_collection, "item_properties"); (void) new KAction( i18n("Open in New Window"), "window_new", 0, this, SLOT( slotOpenNewWindow() ), m_collection, "open_window"); (void) new KAction( i18n("Open in New Tab"), "tab_new", 0, this, SLOT( slotOpenTab() ), m_collection, "open_tab"); (void) new KAction( i18n("Open Folder in Tabs"), "tab_new", 0, this, SLOT( slotOpenTab() ), m_collection, "folder_open_tabs"); (void) new KAction( i18n("Copy Link Address"), "editcopy", 0, this, SLOT( slotCopyLocation() ), m_collection, "copy_location"); KStdAction::editBookmarks( KonqBookmarkManager::self(), SLOT( slotEditBookmarks() ), m_collection, "edit_bookmarks" ); connect( KonqBookmarkManager::self(), SIGNAL(changed(const QString &, const QString &) ), SLOT( slotBookmarksChanged(const QString &) ) ); }
void KrBookmarkHandler::buildMenu(KrBookmark *parent, QMenu *menu) { static int inSecondaryMenu = 0; // used to know if we're on the top menu // run the loop twice, in order to put the folders on top. stupid but easy :-) // note: this code drops the separators put there by the user QListIterator<KrBookmark *> it(parent->children()); while (it.hasNext()) { KrBookmark *bm = it.next(); if (!bm->isFolder()) continue; QMenu *newMenu = new QMenu(menu); newMenu->setIcon(QIcon(krLoader->loadIcon(bm->iconName(), KIconLoader::Small))); newMenu->setTitle(bm->text()); QAction *menuAction = menu->addMenu(newMenu); QVariant v; v.setValue<KrBookmark *>(bm); menuAction->setData(v); ++inSecondaryMenu; buildMenu(bm, newMenu); --inSecondaryMenu; } it.toFront(); while (it.hasNext()) { KrBookmark *bm = it.next(); if (bm->isFolder()) continue; if (bm->isSeparator()) { menu->addSeparator(); continue; } menu->addAction(bm); CONNECT_BM(bm); } if (!inSecondaryMenu) { KConfigGroup group(krConfig, "Private"); bool hasPopularURLs = group.readEntry("BM Popular URLs", true); bool hasTrash = group.readEntry("BM Trash", true); bool hasLan = group.readEntry("BM Lan", true); bool hasVirtualFS = group.readEntry("BM Virtual FS", true); bool hasJumpback = group.readEntry("BM Jumpback", true); if (hasPopularURLs) { menu->addSeparator(); // add the popular links submenu QMenu *newMenu = new QMenu(menu); newMenu->setTitle(i18n("Popular URLs")); newMenu->setIcon(QIcon(krLoader->loadIcon("folder-bookmark", KIconLoader::Small))); QAction *bmfAct = menu->addMenu(newMenu); _specialBookmarks.append(bmfAct); // add the top 15 urls #define MAX 15 QList<QUrl> list = _mainWindow->popularUrls()->getMostPopularUrls(MAX); QList<QUrl>::Iterator it; for (it = list.begin(); it != list.end(); ++it) { QString name; if ((*it).isLocalFile()) name = (*it).path(); else name = (*it).toDisplayString(); // note: these bookmark are put into the private collection // as to not spam the general collection KrBookmark *bm = KrBookmark::getExistingBookmark(name, _privateCollection); if (!bm) bm = new KrBookmark(name, *it, _privateCollection); newMenu->addAction(bm); CONNECT_BM(bm); } newMenu->addSeparator(); newMenu->addAction(krPopularUrls); newMenu->installEventFilter(this); } // do we need to add special bookmarks? if (SPECIAL_BOOKMARKS) { if (hasTrash || hasLan || hasVirtualFS || hasJumpback) menu->addSeparator(); KrBookmark *bm; // note: special bookmarks are not kept inside the _bookmarks list and added ad-hoc if (hasTrash) { bm = KrBookmark::trash(_collection); menu->addAction(bm); _specialBookmarks.append(bm); CONNECT_BM(bm); } if (hasLan) { bm = KrBookmark::lan(_collection); menu->addAction(bm); _specialBookmarks.append(bm); CONNECT_BM(bm); } if (hasVirtualFS) { bm = KrBookmark::virt(_collection); menu->addAction(bm); _specialBookmarks.append(bm); CONNECT_BM(bm); } if (hasJumpback) { // add the jump-back button ListPanelActions *actions = _mainWindow->listPanelActions(); menu->addAction(actions->actJumpBack); _specialBookmarks.append(actions->actJumpBack); menu->addSeparator(); menu->addAction(actions->actSetJumpBack); _specialBookmarks.append(actions->actSetJumpBack); } } if (!hasJumpback) menu->addSeparator(); menu->addAction(KrActions::actAddBookmark); _specialBookmarks.append(KrActions::actAddBookmark); QAction *bmAct = menu->addAction(krLoader->loadIcon("bookmarks", KIconLoader::Small), i18n("Manage Bookmarks"), manager, SLOT(slotEditBookmarks())); _specialBookmarks.append(bmAct); // make sure the menu is connected to us disconnect(menu, SIGNAL(triggered(QAction *)), 0, 0); }
KonqSidebarBookmarkModule::KonqSidebarBookmarkModule( KonqSidebarTree * parentTree ) : QObject( 0L ), KonqSidebarTreeModule( parentTree ), m_topLevelItem( 0L ), m_ignoreOpenChange(true) { if (!s_bookmarkManager) s_bookmarkManager = KBookmarkManager::userBookmarksManager(); // formats handled by K3BookmarkDrag: QStringList formats; formats << "text/uri-list" << "application/x-xbel" << "text/plain"; tree()->setDropFormats(formats); connect(tree(), SIGNAL(moved(Q3ListViewItem*,Q3ListViewItem*,Q3ListViewItem*)), this, SLOT(slotMoved(Q3ListViewItem*,Q3ListViewItem*,Q3ListViewItem*))); connect(tree(), SIGNAL(dropped(K3ListView*,QDropEvent*,Q3ListViewItem*,Q3ListViewItem*)), this, SLOT(slotDropped(K3ListView*,QDropEvent*,Q3ListViewItem*,Q3ListViewItem*))); connect(tree(), SIGNAL(expanded(Q3ListViewItem*)), this, SLOT(slotOpenChange(Q3ListViewItem*))); connect(tree(), SIGNAL(collapsed(Q3ListViewItem*)), this, SLOT(slotOpenChange(Q3ListViewItem*))); m_collection = new KActionCollection( this ); QAction *action = m_collection->addAction("create_folder"); action->setIcon( KIcon("folder-new") ); action->setText( i18n("&Create New Folder") ); connect(action, SIGNAL(triggered(bool)), SLOT(slotCreateFolder())); action = m_collection->addAction("delete_folder"); action->setIcon( KIcon("edit-delete") ); action->setText( i18n("Delete Folder") ); connect(action, SIGNAL(triggered(bool)), SLOT(slotDelete())); action = m_collection->addAction("delete_bookmark"); action->setIcon( KIcon("edit-delete") ); action->setText( i18n("Delete Bookmark") ); connect(action, SIGNAL(triggered(bool)), SLOT(slotDelete())); action = m_collection->addAction("item_properties"); action->setIcon( KIcon("document-properties") ); action->setText( i18n("Properties") ); connect(action, SIGNAL(triggered(bool)), SLOT(slotProperties())); action = m_collection->addAction("open_window"); action->setIcon( KIcon("window-new") ); action->setText( i18n("Open in New Window") ); connect(action, SIGNAL(triggered(bool)), SLOT(slotOpenNewWindow())); action = m_collection->addAction("open_tab"); action->setIcon( KIcon("tab-new") ); action->setText( i18n("Open in New Tab") ); connect(action, SIGNAL(triggered(bool)), SLOT(slotOpenTab())); action = m_collection->addAction("folder_open_tabs"); action->setIcon( KIcon("tab-new") ); action->setText( i18n("Open Folder in Tabs") ); connect(action, SIGNAL(triggered(bool)), SLOT(slotOpenTab())); action = m_collection->addAction("copy_location"); action->setIcon( KIcon("edit-copy") ); action->setText( i18n("Copy Link Address") ); connect(action, SIGNAL(triggered(bool)), SLOT(slotCopyLocation())); m_collection->addAction( "edit_bookmarks", KStandardAction::editBookmarks( s_bookmarkManager, SLOT(slotEditBookmarks()), this ) ); connect( s_bookmarkManager, SIGNAL(changed(QString,QString)), SLOT(slotBookmarksChanged(QString)) ); }