Author: rpmcruz Date: Thu Dec 9 14:40:41 2010 New Revision: 62975 URL: http://svn.opensuse.org/viewcvs/yast?rev=62975&view=rev Log: * src/pkg/yzyppwrapper.cc: bug fix: when sorting equal attributes maintain previous arranging order. Modified: trunk/gtk/ChangeLog trunk/gtk/src/pkg/ygtkpkgdetailview.cc trunk/gtk/src/pkg/yzyppwrapper.cc Modified: trunk/gtk/ChangeLog URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=62975&r1=62... ============================================================================== --- trunk/gtk/ChangeLog (original) +++ trunk/gtk/ChangeLog Thu Dec 9 14:40:41 2010 @@ -1,3 +1,8 @@ +2010-12-09 Ricardo Cruz <rpmcruz@alunos.dcc.fc.up.pt> + + * src/pkg/yzyppwrapper.cc: bug fix: when sorting + equal attributes maintain previous arranging order. + 2010-12-08 Ricardo Cruz <rpmcruz@alunos.dcc.fc.up.pt> * src/ygtktreeview.c: bug fix: now showing menu Modified: trunk/gtk/src/pkg/ygtkpkgdetailview.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/ygtkpkgdetailview.cc?... ============================================================================== --- trunk/gtk/src/pkg/ygtkpkgdetailview.cc (original) +++ trunk/gtk/src/pkg/ygtkpkgdetailview.cc Thu Dec 9 14:40:41 2010 @@ -396,6 +396,27 @@ box = gtk_vbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (box), versions_box, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (box), button_box, FALSE, TRUE, 0); + +#if 0 // draw border all around + GtkWidget *frame = gtk_frame_new (NULL); + gtk_container_set_border_width (GTK_CONTAINER (frame), 2); + gtk_container_add (GTK_CONTAINER (frame), box); + box = frame; +#endif +#if 0 // draw border only to the left + GtkWidget *frame_box = gtk_hbox_new (FALSE, 2); + gtk_box_pack_start (GTK_BOX (frame_box), gtk_vseparator_new(), FALSE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (frame_box), box, TRUE, TRUE, 0); + box = frame_box; +#endif +#if 0 // colored background + GtkWidget *back = gtk_event_box_new(); + GdkColor color = { 0, 230 << 8, 230 << 8, 230 << 8 }; + gtk_widget_modify_bg (back, GTK_STATE_NORMAL, &color); + gtk_container_add (GTK_CONTAINER (back), box); + box = back; +#endif + setChild (box); } Modified: trunk/gtk/src/pkg/yzyppwrapper.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/pkg/yzyppwrapper.cc?rev=6... ============================================================================== --- trunk/gtk/src/pkg/yzyppwrapper.cc (original) +++ trunk/gtk/src/pkg/yzyppwrapper.cc Thu Dec 9 14:40:41 2010 @@ -1389,6 +1389,7 @@ if (impl->vector.empty()) return; + bool unique_criteria = false; switch (attrb) { case IS_INSTALLED_SORT: _order = installed_order; break; case NAME_SORT: @@ -1397,13 +1398,17 @@ _order = utf8_name_order; else _order = name_order; + unique_criteria = true; break; - case SIZE_SORT: _order = size_order; break; + case SIZE_SORT: _order = size_order; unique_criteria = true; break; case REPOSITORY_SORT: _order = repository_order; break; case SUPPORT_SORT: _order = support_order; break; } _ascendent = ascendent; - std::sort (impl->vector.begin(), impl->vector.end(), proxy_order); + if (unique_criteria) + std::sort (impl->vector.begin(), impl->vector.end(), proxy_order); + else // many attributes are equal: maintain previous order in such cases + std::stable_sort (impl->vector.begin(), impl->vector.end(), proxy_order); } void Ypp::List::reverse() -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org