void KBookmarkBar::slotBookmarksChanged( const QString & group ) { KBookmarkGroup tb = getToolbar(); // heavy for non cached toolbar version kDebug(7043) << "KBookmarkBar::slotBookmarksChanged( " << group << " )"; if ( tb.isNull() ) return; if( d->m_filteredToolbar ) { clear(); fillBookmarkBar( tb ); } else if ( KBookmark::commonParent(group, tb.address()) == group) // Is group a parent of tb.address? { clear(); fillBookmarkBar( tb ); } else { // Iterate recursively into child menus for ( QList<KBookmarkMenu *>::ConstIterator smit = m_lstSubMenus.constBegin(), smend = m_lstSubMenus.constEnd(); smit != smend; ++smit ) { (*smit)->slotBookmarksChanged( group ); } } }
Q_FOREACH(BookmarkToolBar * bookmarkToolBar, m_bookmarkToolBars) { if (bookmarkToolBar) { bookmarkToolBar->clear(); fillBookmarkBar(bookmarkToolBar); } }
void KBookmarkBar::slotConfigChanged() { KConfig config("kbookmarkrc", KConfig::NoGlobals); KConfigGroup cg(&config, "Bookmarks"); d->m_filteredToolbar = cg.readEntry( "FilteredToolbar", false ); d->m_contextMenu = cg.readEntry( "ContextMenuActions", true ); clear(); fillBookmarkBar(getToolbar()); }
void KBookmarkBar::fillBookmarkBar(const KBookmarkGroup & parent) { if (parent.isNull()) return; for (KBookmark bm = parent.first(); !bm.isNull(); bm = parent.next(bm)) { // Filtered special cases if(d->m_filteredToolbar) { if(bm.isGroup() && !bm.showInToolbar() ) fillBookmarkBar(bm.toGroup()); if(!bm.showInToolbar()) continue; } if (!bm.isGroup()) { if ( bm.isSeparator() ) m_toolBar->addSeparator(); else { KAction *action = new KBookmarkAction( bm, m_pOwner, 0 ); m_toolBar->addAction(action); d->m_actions.append( action ); } } else { KBookmarkActionMenu *action = new KBookmarkActionMenu(bm, 0); action->setDelayed( false ); m_toolBar->addAction(action); d->m_actions.append( action ); KBookmarkMenu *menu = new KonqBookmarkMenu(m_pManager, m_pOwner, action, bm.address()); m_lstSubMenus.append( menu ); } } }
KBookmarkBar::KBookmarkBar( KBookmarkManager* mgr, KonqBookmarkOwner *_owner, KToolBar *_toolBar, QObject *parent ) : QObject( parent ), m_pOwner(_owner), m_toolBar(_toolBar), m_pManager( mgr ), d( new KBookmarkBarPrivate ) { m_toolBar->setAcceptDrops( true ); m_toolBar->installEventFilter( this ); // for drops if (d->m_contextMenu) { m_toolBar->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_toolBar, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenu(QPoint))); } connect( mgr, SIGNAL(changed(QString,QString)), SLOT(slotBookmarksChanged(QString)) ); connect( mgr, SIGNAL(configChanged()), SLOT(slotConfigChanged()) ); KBookmarkGroup toolbar = getToolbar(); fillBookmarkBar( toolbar ); m_toolBarSeparator = new KAction(this); }