Version: (using KDE KDE 3.5.1) Installed from: SuSE RPMs ...instead it show/hide a single item from the selection. The selection doesn't change however when choosing show/hide again another item /from human point of view randomly picked up/ is shown/hidden.
SVN commit 527013 by teske: Fix multi selection and Show/Hide in toolbar. BUG: 124308 M +16 -8 actionsimpl.cpp M +1 -0 actionsimpl.h M +10 -6 commands.cpp M +1 -1 commands.h M +5 -1 keditbookmarksui.rc --- branches/KDE/3.5/kdebase/konqueror/keditbookmarks/actionsimpl.cpp #527012:527013 @@ -145,6 +145,9 @@ i18n("Show in T&oolbar"), "bookmark_toolbar", 0, actn, SLOT( slotShowInToolbar() ), actionCollection(), "showintoolbar"); (void) new KAction( + i18n("Hide in T&oolbar"), "bookmark_toolbar", 0, + actn, SLOT( slotHideInToolbar() ), actionCollection(), "hideintoolbar"); + (void) new KAction( i18n("&Expand All Folders"), 0, actn, SLOT( slotExpandAll() ), actionCollection(), "expandall"); (void) new KAction( @@ -292,8 +295,10 @@ if( sa.multiSelect || (sa.singleSelect && !sa.root && (sa.group || !sa.urlIsEmpty) && !sa.separator)) toEnable << "testlink" << "updatefavicon"; - if( sa.itemSelected) - toEnable << "showintoolbar"; + if(sa.multiSelect) + toEnable << "showintoolbar" << "hideintoolbar"; + else if(sa.itemSelected) + toEnable << (sa.tbShowState ? "hideintoolbar" : "showintoolbar"); if (sa.singleSelect && !sa.root && !sa.separator) { toEnable << "rename" << "changeicon" << "changecomment"; @@ -308,9 +313,6 @@ } } - QString stbString = sa.tbShowState ? i18n("Hide in T&oolbar") : i18n("Show in T&oolbar"); - coll->action("showintoolbar")->setText(stbString); - for ( QStringList::Iterator it = toEnable.begin(); it != toEnable.end(); ++it ) { @@ -598,12 +600,18 @@ void ActionsImpl::slotShowInToolbar() { KEBApp::self()->bkInfo()->commitChanges(); - KBookmark bk = ListView::self()->firstSelected()->bookmark(); - bool shown = CmdGen::shownInToolbar(bk); - KEBMacroCommand *mcmd = CmdGen::setShownInToolbar(bk, !shown); + QValueList<KBookmark> bks = ListView::self()->itemsToBookmarks(ListView::self()->selectedItemsMap()); + KEBMacroCommand *mcmd = CmdGen::setShownInToolbar(bks, true); CmdHistory::self()->addCommand(mcmd); } +void ActionsImpl::slotHideInToolbar() { + KEBApp::self()->bkInfo()->commitChanges(); + QValueList<KBookmark> bks = ListView::self()->itemsToBookmarks(ListView::self()->selectedItemsMap()); + KEBMacroCommand *mcmd = CmdGen::setShownInToolbar(bks, false); + CmdHistory::self()->addCommand(mcmd); +} + void ActionsImpl::slotChangeIcon() { KEBApp::self()->bkInfo()->commitChanges(); KBookmark bk = ListView::self()->firstSelected()->bookmark(); --- branches/KDE/3.5/kdebase/konqueror/keditbookmarks/actionsimpl.h #527012:527013 @@ -48,6 +48,7 @@ void slotSort(); void slotSetAsToolbar(); void slotShowInToolbar(); + void slotHideInToolbar(); void slotOpenLink(); void slotShowNS(); void slotTestSelection(); --- branches/KDE/3.5/kdebase/konqueror/keditbookmarks/commands.cpp #527012:527013 @@ -619,16 +619,20 @@ return (bk.internalElement().attribute("showintoolbar") == "yes"); } -KEBMacroCommand* CmdGen::setShownInToolbar(const KBookmark &bk, bool show) { +KEBMacroCommand* CmdGen::setShownInToolbar(const QValueList<KBookmark> &bks, bool show) { QString i18n_name = i18n("%1 in Bookmark Toolbar").arg(show ? i18n("Show") : i18n("Hide")); KEBMacroCommand *mcmd = new KEBMacroCommand(i18n_name); - QValueList<EditCommand::Edition> lst; - lst.append(EditCommand::Edition("showintoolbar", show ? "yes" : "no")); - EditCommand *cmd2 = new EditCommand(bk.address(), lst); - mcmd->addCommand(cmd2); - + QValueList<KBookmark>::ConstIterator it, end; + end = bks.end(); + for(it = bks.begin(); it != end; ++it) + { + QValueList<EditCommand::Edition> lst; + lst.append(EditCommand::Edition("showintoolbar", show ? "yes" : "no")); + EditCommand *cmd = new EditCommand((*it).address(), lst); + mcmd->addCommand(cmd); + } return mcmd; } --- branches/KDE/3.5/kdebase/konqueror/keditbookmarks/commands.h #527012:527013 @@ -243,7 +243,7 @@ class CmdGen { public: static KEBMacroCommand* setAsToolbar(const KBookmark &bk); - static KEBMacroCommand* setShownInToolbar(const KBookmark &bk, bool show); + static KEBMacroCommand* setShownInToolbar(const QValueList<KBookmark> &bk, bool show); static bool shownInToolbar(const KBookmark &bk); static KEBMacroCommand* deleteItems(const QString &commandName, const QMap<KEBListViewItem *, bool> & items); static KEBMacroCommand* insertMimeSource(const QString &cmdName, QMimeSource *data, const QString &addr); --- branches/KDE/3.5/kdebase/konqueror/keditbookmarks/keditbookmarksui.rc #527012:527013 @@ -1,5 +1,5 @@ <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd"> -<kpartgui name="keditbookmarks" version="29"> +<kpartgui name="keditbookmarks" version="30"> <MenuBar> @@ -43,6 +43,7 @@ <Action name="changeicon"/> <Separator/> <Action name="showintoolbar"/> + <Action name="hideintoolbar"/> </Menu> <Menu name="view"><text>&View</text> @@ -97,6 +98,7 @@ <!-- Stuff for folders --> <Action name="setastoolbar"/> <Action name="showintoolbar"/> + <Action name="hideintoolbar"/> <Action name="sort"/> <Action name="recursivesort"/> <Separator/> @@ -123,6 +125,7 @@ <Menu name="popup_bookmark"> <!-- Stuff for bookmarks --> <Action name="showintoolbar"/> + <Action name="hideintoolbar"/> <Action name="openlink"/> <Action name="testlink"/> <Action name="updatefavicon"/> @@ -200,6 +203,7 @@ <Action name="rename"/> <Action name="setastoolbar"/> <Action name="showintoolbar"/> + <Action name="hideintoolbar"/> <Action name="sort"/> <Action name="recursivesort"/> <Action name="testall"/>
You need to log in before you can comment on or make changes to this bug.