void ImportCommand::redo() { KBookmarkGroup bkGroup; if (!folder().isNull()) { doCreateHoldingFolder(bkGroup); } else { // import into the root, after cleaning it up bkGroup = GlobalBookmarkManager::self()->root(); delete m_cleanUpCmd; m_cleanUpCmd = DeleteCommand::deleteAll(m_model, bkGroup); new DeleteCommand(m_model, bkGroup.address(), true /* contentOnly */, m_cleanUpCmd); m_cleanUpCmd->redo(); // import at the root m_group = ""; } doExecute(bkGroup); // notify the model that the data has changed // // FIXME Resetting the model completely has the unwanted // side-effect of collapsing all items in tree views // (and possibly other side effects) m_model->resetModel(); }
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 ); } } }
KEBMacroCommand* CmdGen::setAsToolbar(KBookmarkModel* model, const KBookmark &bk) { KEBMacroCommand *mcmd = new KEBMacroCommand(i18nc("(qtundo-format)", "Set as Bookmark Toolbar")); KBookmarkGroup oldToolbar = model->bookmarkManager()->toolbar(); if (!oldToolbar.isNull()) { new EditCommand(model, oldToolbar.address(), -2, "no", mcmd); //toolbar new EditCommand(model, oldToolbar.address(), -1, "", mcmd); //icon } new EditCommand(model, bk.address(), -2, "yes", mcmd); new EditCommand(model, bk.address(), -1, "bookmark-toolbar", mcmd); return mcmd; }
void KonqSidebarBookmarkModule::fillGroup( KonqSidebarTreeItem * parentItem, KBookmarkGroup group ) { int n = 0; for ( KBookmark bk = group.first() ; !bk.isNull() ; bk = group.next(bk), ++n ) { KonqSidebarBookmarkItem * item = new KonqSidebarBookmarkItem( parentItem, m_topLevelItem, bk, n ); if ( bk.isGroup() ) { KBookmarkGroup grp = bk.toGroup(); fillGroup( item, grp ); QString address(grp.address()); if (m_folderOpenState.contains(address)) item->setOpen(m_folderOpenState[address]); else item->setOpen(false); } else if ( bk.isSeparator() ) item->setVisible( false ); else item->setExpandable( false ); } }
void KonqSidebarBookmarkModule::slotMoved(QListViewItem *i, QListViewItem*, QListViewItem *after) { KonqSidebarBookmarkItem *item = dynamic_cast<KonqSidebarBookmarkItem*>( i ); if (!item) return; KBookmark bookmark = item->bookmark(); KBookmark afterBookmark; KonqSidebarBookmarkItem *afterItem = dynamic_cast<KonqSidebarBookmarkItem*>(after); if (afterItem) afterBookmark = afterItem->bookmark(); KBookmarkGroup oldParentGroup = bookmark.parentGroup(); KBookmarkGroup parentGroup; // try to get the parent group (assume that the QListViewItem has been reparented by KListView)... // if anything goes wrong, use the root. if (item->parent()) { bool error = false; KonqSidebarBookmarkItem *parent = dynamic_cast<KonqSidebarBookmarkItem*>( (item->parent()) ); if (!parent) { error = true; } else { if (parent->bookmark().isGroup()) parentGroup = parent->bookmark().toGroup(); else error = true; } if (error) parentGroup = KonqBookmarkManager::self()->root(); } else { // No parent! This means the user dropped it before the top level item // And KListView has moved the item there, we need to correct it tree()->moveItem(item, m_topLevelItem, 0L); parentGroup = KonqBookmarkManager::self()->root(); } // remove the old reference. oldParentGroup.deleteBookmark( bookmark ); // insert the new item. parentGroup.moveItem(bookmark, afterBookmark); // inform others about the changed groups. quite expensive, so do // our best to update them in only one emitChanged call. QString oldAddress = oldParentGroup.address(); QString newAddress = parentGroup.address(); if (oldAddress == newAddress) { KonqBookmarkManager::self()->emitChanged( parentGroup ); } else { int i = 0; while (true) { QChar c1 = oldAddress[i]; QChar c2 = newAddress[i]; if (c1 == QChar::null) { // oldParentGroup is probably parent of parentGroup. KonqBookmarkManager::self()->emitChanged( oldParentGroup ); break; } else if (c2 == QChar::null) { // parentGroup is probably parent of oldParentGroup. KonqBookmarkManager::self()->emitChanged( parentGroup ); break; } else { if (c1 == c2) { // step to the next character. ++i; } else { // ugh... need to update both groups separately. KonqBookmarkManager::self()->emitChanged( oldParentGroup ); KonqBookmarkManager::self()->emitChanged( parentGroup ); break; } } } } }
void ImportCommand::doCreateHoldingFolder(KBookmarkGroup &bkGroup) { bkGroup = GlobalBookmarkManager::self()->mgr() ->root().createNewFolder(folder()); bkGroup.setIcon(m_icon); m_group = bkGroup.address(); }