Hello community,

here is the log from the commit of package libyui-qt-pkg for openSUSE:Factory 
checked in at 2019-12-14 12:03:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libyui-qt-pkg (Old)
 and      /work/SRC/openSUSE:Factory/.libyui-qt-pkg.new.4691 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libyui-qt-pkg"

Sat Dec 14 12:03:38 2019 rev:50 rq:755646 version:2.47.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libyui-qt-pkg/libyui-qt-pkg.changes      
2019-11-18 20:00:06.985902389 +0100
+++ /work/SRC/openSUSE:Factory/.libyui-qt-pkg.new.4691/libyui-qt-pkg.changes    
2019-12-14 12:04:25.643393104 +0100
@@ -1,0 +2,20 @@
+Tue Dec 10 16:18:41 UTC 2019 - Rodion Iafarov <[email protected]>
+
+- Increase SO version to 11 (bsc#1132247)
+- 2.47.0
+
+-------------------------------------------------------------------
+Mon Dec  9 16:58:24 UTC 2019 - Ladislav Slezák <[email protected]>
+
+- Partially restore the "Package Groups" view, display only special
+  package groups (orphaned, unneeded, multiversion,... packages)
+  (bsc#1155132)
+- 2.46.11
+
+-------------------------------------------------------------------
+Thu Nov 28 11:17:12 UTC 2019 - Stefan Hundhammer <[email protected]>
+
+- Fixed Qt 5.14 deprecated warnings (bsc#1155550)
+- 2.46.10
+
+-------------------------------------------------------------------
@@ -1472 +1491,0 @@
-

Old:
----
  libyui-qt-pkg-2.46.9.tar.bz2

New:
----
  libyui-qt-pkg-2.47.0.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libyui-qt-pkg-doc.spec ++++++
--- /var/tmp/diff_new_pack.iZI9dn/_old  2019-12-14 12:04:26.395392973 +0100
+++ /var/tmp/diff_new_pack.iZI9dn/_new  2019-12-14 12:04:26.395392973 +0100
@@ -17,9 +17,9 @@
 
 
 %define parent libyui-qt-pkg
-%define so_version 10
+%define so_version 11
 Name:           %{parent}-doc
-Version:        2.46.9
+Version:        2.47.0
 Release:        0
 Summary:        Libyui-qt-pkg documentation
 License:        LGPL-2.1-only OR LGPL-3.0-only
@@ -31,7 +31,7 @@
 BuildRequires:  gcc-c++
 BuildRequires:  graphviz
 BuildRequires:  graphviz-gnome
-BuildRequires:  libyui-devel >= 3.0.4
+BuildRequires:  libyui-devel >= 3.9.0
 BuildRequires:  texlive-epstopdf-bin
 BuildRequires:  texlive-latex
 BuildArch:      noarch

++++++ libyui-qt-pkg.spec ++++++
--- /var/tmp/diff_new_pack.iZI9dn/_old  2019-12-14 12:04:26.411392970 +0100
+++ /var/tmp/diff_new_pack.iZI9dn/_new  2019-12-14 12:04:26.415392970 +0100
@@ -16,12 +16,12 @@
 #
 
 
-%define so_version 10
+%define so_version 11
 %define bin_name %{name}%{so_version}
 %define libyui_qt_devel_version libyui-qt-devel >= 2.50.1
 %define libzypp_devel_version libzypp-devel >= 15.14.0
 Name:           libyui-qt-pkg
-Version:        2.46.9
+Version:        2.47.0
 Release:        0
 Summary:        Libyui - Qt Package Selector
 License:        LGPL-2.1-only OR LGPL-3.0-only
@@ -34,7 +34,7 @@
 BuildRequires:  libqt5-qtbase-devel
 BuildRequires:  libqt5-qtsvg-devel
 BuildRequires:  libqt5-qtx11extras-devel
-BuildRequires:  libyui-devel >= 3.0.4
+BuildRequires:  libyui-devel >= 3.9.0
 BuildRequires:  pkgconfig
 %if 0%{?suse_version} > 1325
 BuildRequires:  libboost_headers-devel
@@ -54,8 +54,8 @@
 Supplements:    (libyui-qt and yast2-packager)
 Conflicts:      libqdialogsolver1 < 1.4.0
 Provides:       %{name} = %{version}
-Provides:       yast2-qt-pkg = 2.42.0
-Obsoletes:      yast2-qt-pkg < 2.42.0
+Provides:       yast2-qt-pkg = 2.47.0
+Obsoletes:      yast2-qt-pkg < 2.47.0
 # force removal of all previous library versions (bsc#1148622),
 # expands to: libyui-qt-pkg1 libyui-qt-pkg2 ... libyui-qt-pkg{so_version - 1}
 Obsoletes:      %(echo `seq -s " " -f "libyui-qt-pkg%.f" $(expr %{so_version} 
- 1)`)

++++++ libyui-qt-pkg-2.46.9.tar.bz2 -> libyui-qt-pkg-2.47.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/Dockerfile 
new/libyui-qt-pkg-2.47.0/Dockerfile
--- old/libyui-qt-pkg-2.46.9/Dockerfile 2019-11-11 13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/Dockerfile 2019-12-10 17:36:52.000000000 +0100
@@ -1,4 +1,4 @@
 # Use the libyui/devel image as the base
-FROM libyui/devel
+FROM 
registry.opensuse.org/devel/libraries/libyui/containers/libyui-devel:latest
 
 COPY . /usr/src/app
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/SOURCECONF.cmake 
new/libyui-qt-pkg-2.47.0/SOURCECONF.cmake
--- old/libyui-qt-pkg-2.46.9/SOURCECONF.cmake   2019-11-11 13:07:30.000000000 
+0100
+++ new/libyui-qt-pkg-2.47.0/SOURCECONF.cmake   2019-12-10 17:36:52.000000000 
+0100
@@ -26,6 +26,7 @@
   YQPkgLangList.cc
   YQPkgList.cc
   YQPkgObjList.cc
+  YQPkgPackageClassificationFilterView.cc
   YQPkgPatchFilterView.cc
   YQPkgPatchList.cc
   YQPkgPatternList.cc
@@ -74,6 +75,7 @@
   YQPkgLangList.h
   YQPkgList.h
   YQPkgObjList.h
+  YQPkgPackageClassificationFilterView.h
   YQPkgPatchFilterView.h
   YQPkgPatchList.h
   YQPkgPatternList.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/VERSION.cmake 
new/libyui-qt-pkg-2.47.0/VERSION.cmake
--- old/libyui-qt-pkg-2.46.9/VERSION.cmake      2019-11-11 13:07:30.000000000 
+0100
+++ new/libyui-qt-pkg-2.47.0/VERSION.cmake      2019-12-10 17:36:52.000000000 
+0100
@@ -1,6 +1,6 @@
 SET( VERSION_MAJOR "2" )
-SET( VERSION_MINOR "46" )
-SET( VERSION_PATCH "9" )
+SET( VERSION_MINOR "47" )
+SET( VERSION_PATCH "0" )
 SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
 
 ##### This is need for the libyui core, ONLY.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/package/libyui-qt-pkg-doc.spec 
new/libyui-qt-pkg-2.47.0/package/libyui-qt-pkg-doc.spec
--- old/libyui-qt-pkg-2.46.9/package/libyui-qt-pkg-doc.spec     2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/package/libyui-qt-pkg-doc.spec     2019-12-10 
17:36:52.000000000 +0100
@@ -17,9 +17,9 @@
 
 
 %define parent libyui-qt-pkg
-%define so_version 10
+%define so_version 11
 Name:           %{parent}-doc
-Version:        2.46.9
+Version:        2.47.0
 Release:        0
 Summary:        Libyui-qt-pkg documentation
 License:        LGPL-2.1-only OR LGPL-3.0-only
@@ -31,7 +31,7 @@
 BuildRequires:  gcc-c++
 BuildRequires:  graphviz
 BuildRequires:  graphviz-gnome
-BuildRequires:  libyui-devel >= 3.0.4
+BuildRequires:  libyui-devel >= 3.9.0
 BuildRequires:  texlive-epstopdf-bin
 BuildRequires:  texlive-latex
 BuildArch:      noarch
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/package/libyui-qt-pkg.changes 
new/libyui-qt-pkg-2.47.0/package/libyui-qt-pkg.changes
--- old/libyui-qt-pkg-2.46.9/package/libyui-qt-pkg.changes      2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/package/libyui-qt-pkg.changes      2019-12-10 
17:36:52.000000000 +0100
@@ -1,4 +1,24 @@
 -------------------------------------------------------------------
+Tue Dec 10 16:18:41 UTC 2019 - Rodion Iafarov <[email protected]>
+
+- Increase SO version to 11 (bsc#1132247)
+- 2.47.0
+
+-------------------------------------------------------------------
+Mon Dec  9 16:58:24 UTC 2019 - Ladislav Slezák <[email protected]>
+
+- Partially restore the "Package Groups" view, display only special
+  package groups (orphaned, unneeded, multiversion,... packages)
+  (bsc#1155132)
+- 2.46.11
+
+-------------------------------------------------------------------
+Thu Nov 28 11:17:12 UTC 2019 - Stefan Hundhammer <[email protected]>
+
+- Fixed Qt 5.14 deprecated warnings (bsc#1155550)
+- 2.46.10
+
+-------------------------------------------------------------------
 Mon Nov 11 12:05:47 UTC 2019 - Stasiek Michalski <[email protected]>
 
 - Switch to native rpm boolean dependency syntax (boo#1156428)
@@ -163,7 +183,7 @@
 -------------------------------------------------------------------
 Tue Jun 19 08:52:21 UTC 2018 - [email protected]
 
-- Drop code related to qt solver plugin which is dead for long time 
+- Drop code related to qt solver plugin which is dead for long time
   (bsc#1088759)
 - 2.45.17
 
@@ -272,14 +292,14 @@
 - Fixed crash in conflict resolver dialog:
   No longer call libzypp function that always returns null pointer
   (bsc#941398)
-- 2.45.2 
+- 2.45.2
 
 -------------------------------------------------------------------
 Wed Aug 12 19:10:53 CEST 2015 - [email protected]
 
 - Handle mixed multiversion packages (fate#318778)
 - Fixed libzypp deprecated warning
-- 2.45.1 
+- 2.45.1
 
 -------------------------------------------------------------------
 Mon Jun 22 13:46:17 UTC 2015 - [email protected]
@@ -423,7 +443,7 @@
 -------------------------------------------------------------------
 Thu Jan 17 14:34:22 CET 2013 - [email protected]
 
-- Fixed endcoding of entries in package history (bnc #775608)  
+- Fixed endcoding of entries in package history (bnc #775608)
 - Version 2.42.5
 
 -------------------------------------------------------------------
@@ -481,7 +501,7 @@
 -------------------------------------------------------------------
 Tue Mar  6 14:36:45 CET 2012 - [email protected]
 
-- Fixed bnc#691572: Formatting Package Descriptions 
+- Fixed bnc#691572: Formatting Package Descriptions
 - Version: 2.21.19
 
 -------------------------------------------------------------------
@@ -518,7 +538,7 @@
 -------------------------------------------------------------------
 Tue Nov  8 14:43:20 CET 2011 - [email protected]
 
-- Fixed untranslated rpm package groups (bnc #722325) 
+- Fixed untranslated rpm package groups (bnc #722325)
 - Version: 2.21.15
 
 -------------------------------------------------------------------
@@ -539,14 +559,14 @@
 
 - Fixed bnc#721810: Disabled option "Ignore recommended packages for already 
installed
   packages" for update mode
-    
+
 - Version: 2.21.12
 
 -------------------------------------------------------------------
 Tue Oct 11 14:15:20 CEST 2011 - [email protected]
 
 - Fixed bnc#718197: YaST2 Qt package manager opens RMB context
-  menus at a wrong position, usability issue 
+  menus at a wrong position, usability issue
 - Version: 2.21.11
 
 -------------------------------------------------------------------
@@ -632,21 +652,21 @@
 -------------------------------------------------------------------
 Tue Oct 12 15:57:01 CEST 2010 - [email protected]
 
-- fixed bnc #422226: Switching patterns should scroll the 
+- fixed bnc #422226: Switching patterns should scroll the
   package list back to the top
 - 2.20.1
 
 -------------------------------------------------------------------
 Tue Jul 13 13:53:01 UTC 2010 - [email protected]
 
-- bnc#621649 patterns with no categories were supposed to be 
+- bnc#621649 patterns with no categories were supposed to be
   displayed at the top, not randomly
 - 2.20.0
 
 -------------------------------------------------------------------
 Fri Apr 30 11:21:19 CEST 2010 - [email protected]
 
-- Added solver options: 
+- Added solver options:
   * cleanup when deleting packages
   * allow vendor change
 - 2.19.2
@@ -742,7 +762,7 @@
 -------------------------------------------------------------------
 Mon Sep 28 11:36:14 CEST 2009 - [email protected]
 
-- fixed bnc #532518: YaST in translation 
+- fixed bnc #532518: YaST in translation
 - V 2.18.14
 
 -------------------------------------------------------------------
@@ -755,19 +775,19 @@
 Mon Sep 14 11:33:11 CEST 2009 - [email protected]
 
 - Applied patch that fixes sorting by Fabien Crespel
-- V 2.18.12 
+- V 2.18.12
 
 -------------------------------------------------------------------
 Tue Sep  8 17:00:04 CEST 2009 - [email protected]
 
-- Removed wrong package version from file list and change log view 
+- Removed wrong package version from file list and change log view
   (#bnc 528750)
 
 -------------------------------------------------------------------
 Fri Aug 14 10:14:22 CEST 2009 - [email protected]
 
 - Applied patch for optimal column width by Frank Schaefer
-- V 2.18.11 
+- V 2.18.11
 
 -------------------------------------------------------------------
 Tue Aug 11 12:40:50 CEST 2009 - [email protected]
@@ -797,16 +817,16 @@
 -------------------------------------------------------------------
 Mon Jul 27 12:04:03 CEST 2009 - [email protected]
 
-- applied patch for autosize columns 
+- applied patch for autosize columns
 - patch by Frank Schäfer
-- tested by Dave Plater   
+- tested by Dave Plater
 - bnc #441828
 - V 2.18.10
 
 -------------------------------------------------------------------
 Wed Jul 22 16:19:10 CEST 2009 - [email protected]
 
-- Start webpin client from 'Configuration' menu (FaTE #306928)  
+- Start webpin client from 'Configuration' menu (FaTE #306928)
 
 -------------------------------------------------------------------
 Thu May 28 10:51:50 CEST 2009 - [email protected]
@@ -828,7 +848,7 @@
 Fri Apr  3 17:58:35 CEST 2009 - [email protected]
 
 - Fixed confusion caused by patterns (bnc #476965)
-- V 2.18.7 
+- V 2.18.7
 
 -------------------------------------------------------------------
 Fri Apr  3 15:51:09 CEST 2009 - [email protected]
@@ -839,7 +859,7 @@
 Thu Apr  2 10:35:05 CEST 2009 - [email protected]
 
 - Fixed libzypp dependency
-- V 2.18.6 
+- V 2.18.6
 
 -------------------------------------------------------------------
 Tue Mar 17 17:40:49 CET 2009 - [email protected]
@@ -855,12 +875,12 @@
 Thu Mar 12 17:52:29 CET 2009 - [email protected]
 
 - Fixed confusing system verification mode (bnc #285482)
-- V 2.18.5 
+- V 2.18.5
 
 -------------------------------------------------------------------
 Mon Mar  9 16:09:29 CET 2009 - [email protected]
 
-- Fixed "Unsupported Packages" confirmation when removing unsupported packages 
(bnc #475186)  
+- Fixed "Unsupported Packages" confirmation when removing unsupported packages 
(bnc #475186)
 
 -------------------------------------------------------------------
 Thu Feb 26 17:02:30 CET 2009 - [email protected]
@@ -881,7 +901,7 @@
 Wed Feb  4 18:24:46 CET 2009 - [email protected]
 
 - Save and restore open tabs
-- V 2.18.4 
+- V 2.18.4
 
 -------------------------------------------------------------------
 Wed Feb  4 14:13:15 CET 2009 - [email protected]
@@ -893,7 +913,7 @@
 -------------------------------------------------------------------
 Wed Feb  4 13:54:08 CET 2009 - [email protected]
 
-- Added tab context menu (move left, move right, close) 
+- Added tab context menu (move left, move right, close)
 
 -------------------------------------------------------------------
 Thu Jan 29 11:59:13 CET 2009 - [email protected]
@@ -904,7 +924,7 @@
       http://preview.tinyurl.com/tabbed-pkg-browsing-follow-up
 - Moved PackageKit package groups filter view to separate class
 - Restored RPM groups filter view
-- V 2.18.2 
+- V 2.18.2
 
 -------------------------------------------------------------------
 Mon Jan 12 14:12:31 CET 2009 - [email protected]
@@ -920,7 +940,7 @@
 Fri Jan  9 17:59:43 CET 2009 - [email protected]
 
 - Fixed bnc #462778: Community repos show up as repo_1, repo_2, etc.
-  in Versions view 
+  in Versions view
 
 -------------------------------------------------------------------
 Fri Jan  2 15:42:19 CET 2009 - [email protected]
@@ -955,13 +975,13 @@
 - hide the solver information feature if the package is not
   present on the installation media (the popup has no sense there)
   (bnc #450065)
-- V 2.17.23 
+- V 2.17.23
 
 -------------------------------------------------------------------
 Tue Dec  2 14:06:07 CET 2008 - [email protected]
 
 - Fixed bnc #450280: Text cut off in repository list
-- V 2.17.22 
+- V 2.17.22
 
 -------------------------------------------------------------------
 Fri Nov 28 17:10:23 CET 2008 - [email protected]
@@ -977,7 +997,7 @@
 
 - Fixed fix for bnc #447273 (versions missing) that broke fix for
   bnc #441828 (column widths)
-- V 2.17.20 
+- V 2.17.20
 
 -------------------------------------------------------------------
 Mon Nov 24 17:45:49 CET 2008 - [email protected]
@@ -989,29 +1009,29 @@
 Wed Nov 19 17:36:24 CET 2008 - [email protected]
 
 - Fixed bnc #445415: No packages from patterns installed
-- V 2.17.18 
+- V 2.17.18
 
 -------------------------------------------------------------------
 Tue Nov 18 17:05:36 CET 2008 - [email protected]
 
-- Fixed broken version numbers in change log 
+- Fixed broken version numbers in change log
 - V 2.17.17
 
 -------------------------------------------------------------------
 Thu Nov 13 19:22:46 CET 2008 - [email protected]
 
-- Fixed over-wide buttons in dependency problem dialog 
+- Fixed over-wide buttons in dependency problem dialog
 
 -------------------------------------------------------------------
 Wed Nov 12 17:57:41 CET 2008 - [email protected]
 
 - Improved table column widths (bnc #441828)
-  still not perfect, but much better 
+  still not perfect, but much better
 
 -------------------------------------------------------------------
 Wed Nov 12 15:11:28 CET 2008 - [email protected]
 
-- Fixed over-wide [OK] button in package selector help 
+- Fixed over-wide [OK] button in package selector help
 - V 2.17.16
 
 -------------------------------------------------------------------
@@ -1022,7 +1042,7 @@
 -------------------------------------------------------------------
 Mon Nov  3 16:44:47 CET 2008 - [email protected]
 
-- Fixed bnc #438680: software installation description not 
+- Fixed bnc #438680: software installation description not
   refreshed after search
 
 -------------------------------------------------------------------
@@ -1030,7 +1050,7 @@
 
 - Fixed bnc #381981: Bad initial size for secondary filters in
   "Repositories" filter view
-- V 2.17.15 
+- V 2.17.15
 
 -------------------------------------------------------------------
 Fri Oct 24 18:25:17 CEST 2008 - [email protected]
@@ -1043,7 +1063,7 @@
 
 - Fixed bnc #436783: Map Amusements/Teaching/* to Education
 - De-obfuscated RPM groups <--> PackageKit mapping
-- V 2.17.13 
+- V 2.17.13
 
 -------------------------------------------------------------------
 Wed Oct 15 15:15:08 CEST 2008 - [email protected]
@@ -1056,7 +1076,7 @@
 Tue Oct 14 13:06:48 CEST 2008 - [email protected]
 
 - Fixed bnc #434042: "Install -devel packages" doesn't work
-  with new library package naming scheme 
+  with new library package naming scheme
 
 -------------------------------------------------------------------
 Mon Oct 13 14:32:15 CEST 2008 - [email protected]
@@ -1067,30 +1087,30 @@
 Thu Oct  9 18:20:07 CEST 2008 - [email protected]
 
 - Fixed bnc #433914: YQPkgDiskUsageWarningDialog too wide
-- V 2.17.11 
+- V 2.17.11
 
 -------------------------------------------------------------------
 Thu Oct  9 17:35:47 CEST 2008 - [email protected]
 
-- Fixed bnc #382202: WM_CLOSE closes window, but leaves y2base 
+- Fixed bnc #382202: WM_CLOSE closes window, but leaves y2base
   process running in undefined state
 - V 2.17.10
 
 -------------------------------------------------------------------
 Tue Oct  7 18:41:47 CEST 2008 - [email protected]
 
-- Fixed bnc #429030: "Configuration" menu present in installation 
+- Fixed bnc #429030: "Configuration" menu present in installation
 - V 2.17.9
 
 -------------------------------------------------------------------
 Tue Oct  7 15:04:28 CEST 2008 - [email protected]
 
-- Fixed bnc #421267: Missing newline in exported conflicts list 
+- Fixed bnc #421267: Missing newline in exported conflicts list
 
 -------------------------------------------------------------------
 Thu Oct  2 13:20:46 CEST 2008 - [email protected]
 
-- Fixed bnc #430392: Typo in error message 
+- Fixed bnc #430392: Typo in error message
 
 -------------------------------------------------------------------
 Wed Oct  1 13:59:45 CEST 2008 - [email protected]
@@ -1100,8 +1120,8 @@
 -------------------------------------------------------------------
 Fri Sep 26 16:53:35 CEST 2008 - [email protected]
 
-- Fixed crash in Languages filter: redefined sort function for 
-  languages so that it does not refer to zypp::ResObjects 
+- Fixed crash in Languages filter: redefined sort function for
+  languages so that it does not refer to zypp::ResObjects
   (zypp::Locale isn't one anymore)(bnc#428355)
 - V 2.17.8
 
@@ -1110,12 +1130,12 @@
 
 - Ask for package licenses, not patch licenses even in online
   update mode
-- V 2.17.7 
+- V 2.17.7
 
 -------------------------------------------------------------------
 Fri Sep  5 16:22:28 CEST 2008 - [email protected]
 
-- Fixed bnc #418676: Use title capitalization for groups 
+- Fixed bnc #418676: Use title capitalization for groups
 
 -------------------------------------------------------------------
 Mon Aug 25 13:11:21 CEST 2008 - [email protected]
@@ -1134,14 +1154,14 @@
 - 2.17.5
 - on SLE systems, warn before transaction if it includes
   unsupported software (fate#305057)
-  can also be enabled by defining 
+  can also be enabled by defining
   YPKG_QT_CONFIRM_UNSUPPORTED_PACKAGES at compile time.
 - (fate#120366) search in file list option
 
 -------------------------------------------------------------------
 Thu Aug 14 23:18:03 CEST 2008 - [email protected]
 
-- 2.17.4 
+- 2.17.4
 - make the versions view scrollable (bnc#409096)
 
 -------------------------------------------------------------------
@@ -1469,4 +1489,3 @@
 Thu Feb 14 15:01:26 CET 2008 - [email protected]
 
 - split off the package manager off yast2-qt
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/package/libyui-qt-pkg.spec 
new/libyui-qt-pkg-2.47.0/package/libyui-qt-pkg.spec
--- old/libyui-qt-pkg-2.46.9/package/libyui-qt-pkg.spec 2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/package/libyui-qt-pkg.spec 2019-12-10 
17:36:52.000000000 +0100
@@ -16,12 +16,12 @@
 #
 
 
-%define so_version 10
+%define so_version 11
 %define bin_name %{name}%{so_version}
 %define libyui_qt_devel_version libyui-qt-devel >= 2.50.1
 %define libzypp_devel_version libzypp-devel >= 15.14.0
 Name:           libyui-qt-pkg
-Version:        2.46.9
+Version:        2.47.0
 Release:        0
 Summary:        Libyui - Qt Package Selector
 License:        LGPL-2.1-only OR LGPL-3.0-only
@@ -34,7 +34,7 @@
 BuildRequires:  libqt5-qtbase-devel
 BuildRequires:  libqt5-qtsvg-devel
 BuildRequires:  libqt5-qtx11extras-devel
-BuildRequires:  libyui-devel >= 3.0.4
+BuildRequires:  libyui-devel >= 3.9.0
 BuildRequires:  pkgconfig
 %if 0%{?suse_version} > 1325
 BuildRequires:  libboost_headers-devel
@@ -54,8 +54,8 @@
 Supplements:    (libyui-qt and yast2-packager)
 Conflicts:      libqdialogsolver1 < 1.4.0
 Provides:       %{name} = %{version}
-Provides:       yast2-qt-pkg = 2.42.0
-Obsoletes:      yast2-qt-pkg < 2.42.0
+Provides:       yast2-qt-pkg = 2.47.0
+Obsoletes:      yast2-qt-pkg < 2.47.0
 # force removal of all previous library versions (bsc#1148622),
 # expands to: libyui-qt-pkg1 libyui-qt-pkg2 ... libyui-qt-pkg{so_version - 1}
 Obsoletes:      %(echo `seq -s " " -f "libyui-qt-pkg%.f" $(expr %{so_version} 
- 1)`)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPackageSelector.cc 
new/libyui-qt-pkg-2.47.0/src/YQPackageSelector.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPackageSelector.cc   2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPackageSelector.cc   2019-12-10 
17:36:52.000000000 +0100
@@ -95,6 +95,7 @@
 #include "YQPkgHistoryDialog.h"
 #include "YQPkgLangList.h"
 #include "YQPkgList.h"
+#include "YQPkgPackageClassificationFilterView.h"
 #include "YQPkgPatchFilterView.h"
 #include "YQPkgPatchList.h"
 #include "YQPkgPatternList.h"
@@ -146,6 +147,7 @@
     _detailsViews              = 0;
     _filters                   = 0;
     _langList                  = 0;
+    _packageClassificationFilterView   = 0;
     _patchFilterView           = 0;
     _patchList                 = 0;
     _patternList               = 0;
@@ -345,6 +347,18 @@
 
 
     //
+    // Package classification view
+    //
+
+    _packageClassificationFilterView = new 
YQPkgPackageClassificationFilterView( parent );
+    YUI_CHECK_NEW( _packageClassificationFilterView );
+    _filters->addPage( _( "Package &Classification" ), 
_packageClassificationFilterView, "package_classification" );
+
+    connect( this,                             SIGNAL( loadData() ),
+            _packageClassificationFilterView,  SLOT  ( filter()   ) );
+
+
+    //
     // Languages view
     //
 
@@ -962,6 +976,7 @@
     connectFilter( _langList,                  _pkgList );
     connectFilter( _repoFilterView,            _pkgList, false );
     connectFilter( _serviceFilterView, _pkgList, false );
+    connectFilter( _packageClassificationFilterView,   _pkgList, false );
     connectFilter( _statusFilterView,          _pkgList, false );
     connectFilter( _searchFilterView,          _pkgList, false );
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPackageSelector.h 
new/libyui-qt-pkg-2.47.0/src/YQPackageSelector.h
--- old/libyui-qt-pkg-2.46.9/src/YQPackageSelector.h    2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPackageSelector.h    2019-12-10 
17:36:52.000000000 +0100
@@ -69,6 +69,7 @@
 class YQPkgFilterTab;
 class YQPkgLangList;
 class YQPkgList;
+class YQPkgPackageClassificationFilterView;
 class YQPkgPatchFilterView;
 class YQPkgPatchList;
 class YQPkgPatternList;
@@ -397,6 +398,7 @@
     YQPkgLangList *                    _langList;
     YQPkgList *                                _pkgList;
     YQPkgPatternList *                 _patternList;
+    YQPkgPackageClassificationFilterView *     
_packageClassificationFilterView;
     YQPkgSearchFilterView *            _searchFilterView;
     YQPkgStatusFilterView *            _statusFilterView;
     YQPkgTechnicalDetailsView *                _pkgTechnicalDetailsView;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgConflictDialog.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgConflictDialog.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgConflictDialog.cc 2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgConflictDialog.cc 2019-12-10 
17:36:52.000000000 +0100
@@ -50,7 +50,7 @@
 #include <QLayout>
 #include <QMenu>
 #include <QPushButton>
-#include <QDateTime>
+#include <QElapsedTimer>
 #include <QPainter>
 #include <QMessageBox>
 #include <QDesktopWidget>
@@ -251,7 +251,7 @@
     prepareSolving();
 
     yuiDebug() << "Solving..." << endl;
-    QTime solveTime;
+    QElapsedTimer solveTime;
     solveTime.start();
 
     // Solve.
@@ -274,7 +274,7 @@
     prepareSolving();
 
     yuiDebug() << "Verifying system..." << endl;
-    QTime solveTime;
+    QElapsedTimer solveTime;
     solveTime.start();
 
     bool success = zypp::getZYpp()->resolver()->verifySystem(); // 
considerNewHardware
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgConflictList.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgConflictList.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgConflictList.cc   2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgConflictList.cc   2019-12-10 
17:36:52.000000000 +0100
@@ -407,7 +407,9 @@
     {
         QRadioButton  *button = it.key();
         zypp::ProblemSolution_Ptr solution = it.value();
-        buffer.sprintf( "    [%c] %s\n", button->isChecked() ? 'x' : ' ', 
qPrintable( fromUTF8( solution->description() ) ) );
+        buffer = QString( "    [%1] %2\n" )
+            .arg( button->isChecked() ? "x" : " " )
+            .arg( qPrintable( fromUTF8( solution->description() ) ) );
         buffer += fromUTF8( solution->details() );
        buffer += "\n";
         file.write( buffer.toUtf8() );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgDescriptionView.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgDescriptionView.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgDescriptionView.cc        2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgDescriptionView.cc        2019-12-10 
17:36:52.000000000 +0100
@@ -114,7 +114,10 @@
               rit != patch->referencesEnd();
               ++rit )
         {
-            html_text +=  QString().sprintf("<li>%s (%s) : %s</li>", 
rit.id().c_str(),  rit.type().c_str(), rit.title().c_str() );
+            html_text +=  QString( "<li>%1 (%2) : %3</li>" )
+                .arg( rit.id().c_str() )
+                .arg( rit.type().c_str() )
+                .arg( rit.title().c_str() );
         }
         html_text += "</ul>";
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgFilterTab.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgFilterTab.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgFilterTab.cc      2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgFilterTab.cc      2019-12-10 
17:36:52.000000000 +0100
@@ -312,7 +312,7 @@
     {
        QAction * action = new QAction( pageLabel, this );
        YUI_CHECK_NEW( action );
-       action->setData( qVariantFromValue( pageContent ) );
+       action->setData( QVariant::fromValue( pageContent ) );
        
        priv->viewButton->menu()->addAction( action );
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgGenericDetailsView.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgGenericDetailsView.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgGenericDetailsView.cc     2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgGenericDetailsView.cc     2019-12-10 
17:36:52.000000000 +0100
@@ -233,10 +233,7 @@
 QString
 YQPkgGenericDetailsView::cell( int contents )
 {
-    QString html;
-    html.sprintf( "<td>%d</td>", contents );
-
-    return html;
+    return QString( "<td>%1</td>" ).arg( contents );
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgLangList.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgLangList.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgLangList.cc       2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgLangList.cc       2019-12-10 
17:36:52.000000000 +0100
@@ -152,11 +152,6 @@
                 emit filterMatch( *it, zyppPkg );
             }
         }
-        //selection()->setInstalledPackages(installed);
-        //selection()->setTotalPackages(total);
-
-        //selection()->setText( _summaryCol, QString().sprintf("%s (%d/%d)", 
zyppPattern->summary().c_str(), installed, total));
-
     }
     emit filterFinished();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgList.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgList.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgList.cc   2019-11-11 13:07:30.000000000 
+0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgList.cc   2019-12-10 17:36:52.000000000 
+0100
@@ -373,7 +373,7 @@
     qstr = QString::fromUtf8( zyppPkg->installSize().asString().c_str() );
     qstr_width = fm.boundingRect( qstr ).width() + ( STATUS_ICON_SIZE / 2 );
     if (qstr_width > _optimalColWidth_size)
-        _optimalColWidth_size = qstr_width;    
+        _optimalColWidth_size = qstr_width;
 }
 
 
@@ -616,25 +616,24 @@
     // Write header
     //
 
-    // Format the header line with QString::sprintf() because plain stdio
-    // fprintf() is not UTF-8 aware - it will count multi-byte characters
-    // wrong, so the formatting will be broken.
-
-    QString header;
-    header.sprintf( "# %-18s %-30s | %-40s | %-25s | %10s\n\n",
-                   (const char *) _( "Status"      ).toUtf8(),
-                   (const char *) _( "Package"     ).toUtf8(),
-                   (const char *) _( "Summary"     ).toUtf8(),
-                   (const char *) _( "Installed (Available)" ).toUtf8(),
-                   (const char *) _( "Size"        ).toUtf8()
-                   );
-    file.write(header.toUtf8());
+    // Format the header line with QString::arg() because stdio fprintf() is
+    // not UTF-8 aware - it will count multi-byte characters wrong, so the
+    // formatting will be broken.
+
+    QString header = QString( "# %1 %2 | %3 | %4 | 5\n\n" )
+        .arg( _( "Status"                ), -18 )
+        .arg( _( "Package"               ), -30 )
+        .arg( _( "Summary"               ), -40 )
+       .arg( _( "Installed (Available)" ), -25 )
+       .arg( _( "Size"                  ),  10 );
+
+    file.write( header.toUtf8() );
 
 
     // Write all items
 
     QTreeWidgetItemIterator it((QTreeWidget*) this);
-    
+
     while (*it)
     {
         const QTreeWidgetItem* item(*it);
@@ -654,16 +653,17 @@
             }
 
             QString status = "[" + statusText( pkg->status() ) + "]";
-            QString format;
-           format.sprintf("%-20s %-30s | %-40s | %-25s | %10s\n",
-                    (const char*) status.toUtf8(),
-                    (const char*) pkg->text( nameCol() ).toUtf8(),
-                    (const char*) summary.toUtf8(),
-                    (const char*) version.toUtf8(),
-                    (const char*) pkg->text( sizeCol() ).toUtf8() 
-                    );
-            file.write(format.toUtf8());
+
+            QString line = QString( "%1 %2 | %3 | %4 | %5\n" )
+                .arg( status,                 -20 )
+                .arg( pkg->text( nameCol() ), -30 )
+               .arg( summary,                -40 )
+                .arg( version,                -25 )
+               .arg( pkg->text( sizeCol() ),  10 );
+
+            file.write( line.toUtf8() );
        }
+
         ++it;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgObjList.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgObjList.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgObjList.cc        2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgObjList.cc        2019-12-10 
17:36:52.000000000 +0100
@@ -965,28 +965,27 @@
                if ( zyppObj() != installed  &&
                     zyppObj() != candidate )
                {
-                   setText( versionCol(), QString().sprintf( "%s", 
zyppObj()->edition().c_str() ) );
+                   setText( versionCol(), zyppObj()->edition());
                }
                else
                {
                    if ( candidate && installed->edition() != 
candidate->edition() )
                    {
                        setText( versionCol(),
-                                QString().sprintf( "%s (%s)",
-                                                   
installed->edition().c_str(),
-                                                   
candidate->edition().c_str() ) );
+                                 QString( "%1 (%2)" )
+                                 .arg( installed->edition().c_str() )
+                                 .arg( candidate->edition().c_str() ) );
                    }
                    else // no candidate or both versions are the same anyway
                    {
-                       setText( versionCol(),
-                                QString().sprintf( "%s", 
installed->edition().c_str() ) );
+                       setText( versionCol(), installed->edition() );
                    }
                }
            }
            else
            {
                if ( candidate )
-                   setText( versionCol(), QString().sprintf( "(%s)", 
candidate->edition().c_str() ) );
+                   setText( versionCol(), QString( "(%1)" ).arg( 
candidate->edition().c_str() ) );
                else
                    setText( versionCol(), zyppObj()->edition() );
            }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-qt-pkg-2.46.9/src/YQPkgPackageClassificationFilterView.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgPackageClassificationFilterView.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgPackageClassificationFilterView.cc        
1970-01-01 01:00:00.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgPackageClassificationFilterView.cc        
2019-12-10 17:36:52.000000000 +0100
@@ -0,0 +1,318 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+/*---------------------------------------------------------------------\
+|                                                                     |
+|                     __   __    ____ _____ ____                      |
+|                     \ \ / /_ _/ ___|_   _|___ \                     |
+|                      \ V / _` \___ \ | |   __) |                    |
+|                       | | (_| |___) || |  / __/                     |
+|                       |_|\__,_|____/ |_| |_____|                    |
+|                                                                     |
+|                              core system                            |
+|                                                       (C) SuSE GmbH |
+\----------------------------------------------------------------------/
+
+  File:                YQPkgPackageClassificationFilterView.cc
+
+  Authors:     Duncan Mac-Vicar Prett <[email protected]>
+               Stefan Hundhammer <[email protected]>
+
+  Textdomain "qt-pkg"
+
+/-*/
+
+
+#define YUILogComponent "qt-pkg"
+#include "YUILog.h"
+
+#include <QApplication>
+
+#include "YQPackageSelector.h"
+
+#include "YQPkgPackageClassificationFilterView.h"
+#include "YQi18n.h"
+#include "utf8.h"
+
+
+QString
+translatedText( YPkgGroupEnum group )
+{
+    switch ( group )
+    {
+       case YPKG_GROUP_ALL:                    return _( "All Packages"        
);
+       case YPKG_GROUP_SUGGESTED:              return _( "Suggested Packages"  
);
+       case YPKG_GROUP_RECOMMENDED:            return _( "Recommended 
Packages");
+       case YPKG_GROUP_ORPHANED:               return _( "Orphaned Packages"   
);
+       case YPKG_GROUP_UNNEEDED:               return _( "Unneeded Packages"   
);
+       case YPKG_GROUP_MULTIVERSION:           return _( "Multiversion 
Packages"   );
+
+       // Intentionally omitting 'default' case so gcc can catch unhandled 
enums
+    }
+
+    // this should never be reached, not marked for translation
+    return "Unknown Group";
+}
+
+
+string
+groupIcon( YPkgGroupEnum group )
+{
+    switch ( group )
+    {
+       case YPKG_GROUP_SUGGESTED:              return( 
"preferences-desktop-locale"            );
+       case YPKG_GROUP_RECOMMENDED:            return( 
"preferences-desktop-locale"            );
+       case YPKG_GROUP_ORPHANED:               return( 
"preferences-desktop-locale"            );
+       case YPKG_GROUP_UNNEEDED:               return( 
"preferences-desktop-locale"            );
+       case YPKG_GROUP_MULTIVERSION:           return( 
"preferences-desktop-locale"            );
+       case YPKG_GROUP_ALL:                    return( "preferences-other"     
                );
+
+       // Intentionally omitting 'default' case so gcc can catch unhandled 
enums
+    }
+
+    return( "" );
+}
+
+YQPkgPackageClassificationFilterView::YQPkgPackageClassificationFilterView( 
QWidget * parent )
+    : QTreeWidget( parent )
+    , _selectedGroup(YPKG_GROUP_ALL)
+{
+    setIconSize(QSize(32,32));
+    setHeaderLabels( QStringList(_( "Package Classification" )) );
+    setRootIsDecorated( false );
+    setSortingEnabled( true );
+    connect( this, SIGNAL( currentItemChanged  ( QTreeWidgetItem *, 
QTreeWidgetItem * ) ),
+            this, SLOT  ( slotSelectionChanged ( QTreeWidgetItem * ) ) );
+    fillGroups();
+
+    selectSomething();
+}
+
+
+YQPkgPackageClassificationFilterView::~YQPkgPackageClassificationFilterView()
+{
+}
+
+
+void
+YQPkgPackageClassificationFilterView::fillGroups()
+{
+    if ( _groupsMap.empty() )
+    {
+       _groupsMap[ YPKG_GROUP_ALL         ] =  new 
YQPkgPackageClassificationGroup( this, YPKG_GROUP_ALL          );
+       _groupsMap[ YPKG_GROUP_RECOMMENDED ] =  new 
YQPkgPackageClassificationGroup( this, YPKG_GROUP_RECOMMENDED );
+       _groupsMap[ YPKG_GROUP_SUGGESTED   ] =  new 
YQPkgPackageClassificationGroup( this, YPKG_GROUP_SUGGESTED   );
+       _groupsMap[ YPKG_GROUP_ORPHANED    ] =  new 
YQPkgPackageClassificationGroup( this, YPKG_GROUP_ORPHANED   );
+       _groupsMap[ YPKG_GROUP_UNNEEDED    ] =  new 
YQPkgPackageClassificationGroup( this, YPKG_GROUP_UNNEEDED   );
+       if ( ! zypp::sat::Pool::instance().multiversion().empty() )
+           _groupsMap[ YPKG_GROUP_MULTIVERSION] = new 
YQPkgPackageClassificationGroup( this, YPKG_GROUP_MULTIVERSION );
+
+    }
+}
+
+
+void
+YQPkgPackageClassificationFilterView::selectSomething()
+{
+// FIXME
+//     QTreeWidgetItem * item = children().first();
+//
+//     if ( item )
+//     setCurrentItem(item);
+}
+
+
+void
+YQPkgPackageClassificationFilterView::filterIfVisible()
+{
+    if ( isVisible() )
+       filter();
+}
+
+
+void
+YQPkgPackageClassificationFilterView::filter()
+{
+    emit filterStart();
+    // yuiDebug() << "Filtering packages for RPM group \"" << 
selectedRpmGroup() << "\"" << endl;
+
+    if ( selection() )
+    {
+       for ( ZyppPoolIterator it = zyppPkgBegin();
+             it != zyppPkgEnd();
+             ++it )
+        {
+            ZyppSel selectable = *it;
+            bool match = false;
+
+            // If there is an installed obj, check this first. The bits are 
set for the installed
+            // obj only and the installed obj is not contained in the pick 
list if there in an
+            // identical candidate available from a repo.
+            if ( selectable->installedObj())
+            {
+                match = check( selectable, tryCastToZyppPkg( 
selectable->installedObj() ) );
+            }
+            if ( selectable->candidateObj() && !match)
+            {
+                match = check( selectable, tryCastToZyppPkg( 
selectable->candidateObj() ) );
+            }
+
+            // And then check the pick list which contain all availables and 
all objects for multi
+            // version packages and the installed obj if there isn't same 
version in a repo.
+            if ( !match )
+            {
+                zypp::ui::Selectable::picklist_iterator it = 
selectable->picklistBegin();
+                while ( it != selectable->picklistEnd() && !match )
+                {
+                    check( selectable, tryCastToZyppPkg( *it ) );
+                    ++it;
+                }
+            }
+        }
+    }
+    emit filterFinished();
+}
+
+
+void
+YQPkgPackageClassificationFilterView::slotSelectionChanged( QTreeWidgetItem * 
newSelection )
+{
+    YQPkgPackageClassificationGroup * sel = 
dynamic_cast<YQPkgPackageClassificationGroup *>( newSelection );
+
+    if ( sel )
+    {
+       _selectedGroup = sel->group();
+       // for the list of reccommended packages, we need
+       // to solve first
+       if ( _selectedGroup == YPKG_GROUP_SUGGESTED ||
+            _selectedGroup == YPKG_GROUP_RECOMMENDED ||
+             _selectedGroup == YPKG_GROUP_ORPHANED ||
+             _selectedGroup == YPKG_GROUP_UNNEEDED )
+       {
+           // set the busy cursor for the solving
+           QApplication::setOverrideCursor(Qt::WaitCursor);
+           zypp::getZYpp()->resolver()->resolvePool();
+           QApplication::restoreOverrideCursor();
+       }
+
+    }
+    else
+    {
+       _selectedGroup = YPKG_GROUP_ALL;
+    }
+
+    filter();
+}
+
+
+bool
+YQPkgPackageClassificationFilterView::check( ZyppSel selectable,
+                                       ZyppPkg pkg             )
+{
+    if ( ! pkg || ! selection() )
+       return false;
+
+    if ( selection()->group() == YPKG_GROUP_ALL )              // Special 
case: All packages
+    {
+       emit filterMatch( selectable, pkg );
+       return true;
+    }
+
+    if ( selectedGroup() == YPKG_GROUP_RECOMMENDED &&
+        zypp::PoolItem(pkg).status().isRecommended() )
+    {
+        emit filterMatch( selectable, pkg );
+        return true;
+    }
+    if ( selectedGroup() == YPKG_GROUP_SUGGESTED &&
+        zypp::PoolItem(pkg).status().isSuggested() )
+    {
+        emit filterMatch( selectable, pkg );
+        return true;
+    }
+    if ( selectedGroup() == YPKG_GROUP_ORPHANED &&
+        zypp::PoolItem(pkg).status().isOrphaned() )
+    {
+        emit filterMatch( selectable, pkg );
+        return true;
+    }
+    if ( selectedGroup() == YPKG_GROUP_UNNEEDED &&
+        zypp::PoolItem(pkg).status().isUnneeded() )
+    {
+        emit filterMatch( selectable, pkg );
+        return true;
+    }
+
+    if ( selectedGroup() == YPKG_GROUP_MULTIVERSION &&
+        selectable->multiversionInstall() )
+    {
+        emit filterMatch( selectable, pkg );
+        return true;
+    }
+
+
+    return false;
+}
+
+
+YQPkgPackageClassificationGroup *
+YQPkgPackageClassificationFilterView::selection() const
+{
+    QTreeWidgetItem * item = currentItem();
+
+    if ( ! item )
+       return 0;
+
+    return dynamic_cast<YQPkgPackageClassificationGroup *> ( item );
+}
+
+
+
+
+YQPkgPackageClassificationGroup::YQPkgPackageClassificationGroup( 
YQPkgPackageClassificationFilterView * parentFilterView,
+                                           YPkgGroupEnum group )
+    : QTreeWidgetItem( parentFilterView )
+    , _filterView( parentFilterView )
+    , _group( group )
+{
+    setText( 0, translatedText( group ) );
+}
+
+
+YQPkgPackageClassificationGroup::~YQPkgPackageClassificationGroup()
+{
+    // NOP
+}
+
+
+bool
+YQPkgPackageClassificationGroup::operator< ( const QTreeWidgetItem & 
otherListViewItem ) const
+{
+    const YQPkgPackageClassificationGroup * otherCategoryItem =
+       dynamic_cast<const YQPkgPackageClassificationGroup 
*>(&otherListViewItem);
+
+    if ( otherCategoryItem )
+       return group() > otherCategoryItem->group();
+    else
+       return true;
+}
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-qt-pkg-2.46.9/src/YQPkgPackageClassificationFilterView.h 
new/libyui-qt-pkg-2.47.0/src/YQPkgPackageClassificationFilterView.h
--- old/libyui-qt-pkg-2.46.9/src/YQPkgPackageClassificationFilterView.h 
1970-01-01 01:00:00.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgPackageClassificationFilterView.h 
2019-12-10 17:36:52.000000000 +0100
@@ -0,0 +1,189 @@
+/**************************************************************************
+Copyright (C) 2000 - 2010 Novell, Inc.
+All Rights Reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+**************************************************************************/
+
+
+/*---------------------------------------------------------------------\
+|                                                                     |
+|                     __   __    ____ _____ ____                      |
+|                     \ \ / /_ _/ ___|_   _|___ \                     |
+|                      \ V / _` \___ \ | |   __) |                    |
+|                       | | (_| |___) || |  / __/                     |
+|                       |_|\__,_|____/ |_| |_____|                    |
+|                                                                     |
+|                              core system                            |
+|                                                       (C) SuSE GmbH |
+\----------------------------------------------------------------------/
+
+  File:                YQPkgPackageClassificationFilterView.h
+
+  Authors:     Duncan Mac-Vicar Prett <[email protected]>
+               Stefan Hundhammer <[email protected]>
+
+/-*/
+
+
+#ifndef YQPkgPackageClassificationFilterView_h
+#define YQPkgPackageClassificationFilterView_h
+
+#include <map>
+#include "YQZypp.h"
+#include "YRpmGroupsTree.h"
+#include <QTreeWidget>
+
+using std::string;
+
+typedef enum
+{
+    YPKG_GROUP_SUGGESTED,
+    YPKG_GROUP_RECOMMENDED,
+    YPKG_GROUP_ORPHANED,
+    YPKG_GROUP_UNNEEDED,
+    YPKG_GROUP_MULTIVERSION,
+    YPKG_GROUP_ALL,
+} YPkgGroupEnum;
+
+
+class YQPkgPackageClassificationGroup;
+
+
+/**
+ * Filter view for PackageKit groups. Uses the packages' RPM group tags and
+ * maps them to the corresponding PackageKit group. 
+ **/
+class YQPkgPackageClassificationFilterView : public QTreeWidget
+{
+    Q_OBJECT
+
+public:
+
+    /**
+     * Constructor
+     **/
+    YQPkgPackageClassificationFilterView( QWidget * parent );
+
+    /**
+     * Destructor
+     **/
+    virtual ~YQPkgPackageClassificationFilterView();
+
+    /**
+     * Returns the currently selected item or 0 if there is none.
+     **/
+    YQPkgPackageClassificationGroup * selection() const;
+
+    /**
+     * Check if 'pkg' matches the selected group.
+     * Returns true if there is a match, false otherwise.
+     **/
+    bool check( ZyppSel        selectable,
+               ZyppPkg pkg );
+
+    /**
+     * Returns the (untranslated!) currently selected group enum
+     **/
+    YPkgGroupEnum selectedGroup() const { return _selectedGroup; }
+
+public slots:
+
+    /**
+     * Filter according to the view's rules and current selection.
+     * Emits those signals:
+     *    filterStart()
+     *    filterMatch() for each pkg that matches the filter
+     *    filterFinished()
+     **/
+    void filter();
+
+    /**
+     * Same as filter(), but only if this widget is currently visible.
+     **/
+    void filterIfVisible();
+
+    /**
+     * Select a list entry (if there is any).
+     * Usually this will be the first list entry, but don't rely on that - this
+     * might change without notice. Emits signal currentItemChanged().
+     **/
+    void selectSomething();
+
+signals:
+
+    /**
+     * Emitted when the filtering starts. Use this to clear package lists
+     * etc. prior to adding new entries.
+     **/
+    void filterStart();
+
+    /**
+     * Emitted during filtering for each pkg that matches the filter.
+     **/
+    void filterMatch( ZyppSel  selectable,
+                     ZyppPkg   pkg );
+
+    /**
+     * Emitted when filtering is finished.
+     **/
+    void filterFinished();
+
+
+protected slots:
+
+    void slotSelectionChanged( QTreeWidgetItem * newSelection );
+
+    
+protected:
+
+    void fillGroups();
+
+    //
+    // Data members
+    //
+
+    YPkgGroupEnum _selectedGroup;
+    std::map<YPkgGroupEnum, YQPkgPackageClassificationGroup *> _groupsMap;
+    
+    // map to cache converted groups
+    std::map<std::string, YPkgGroupEnum> _groupsCache;
+};
+
+
+class YQPkgPackageClassificationGroup: public QTreeWidgetItem
+{
+public:
+
+    YQPkgPackageClassificationGroup( YQPkgPackageClassificationFilterView * 
parentFilterView,
+                         YPkgGroupEnum group );
+    virtual ~YQPkgPackageClassificationGroup();
+
+    YQPkgPackageClassificationFilterView * filterView() const { return 
_filterView; }
+    YPkgGroupEnum group() const { return _group; }
+    virtual bool operator< ( const QTreeWidgetItem & otherListViewItem ) const;
+
+    
+private:
+
+    // Data members
+
+    YQPkgPackageClassificationFilterView *     _filterView;
+    YPkgGroupEnum                      _group;
+};
+
+
+#endif // ifndef YQPkgPackageClassificationFilterView_h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgPatchFilterView.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgPatchFilterView.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgPatchFilterView.cc        2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgPatchFilterView.cc        2019-12-10 
17:36:52.000000000 +0100
@@ -46,7 +46,7 @@
 #include <QLabel>
 #include <QSplitter>
 #include <QTabWidget>
-#include <QDateTime>
+#include <QElapsedTimer>
 #include <QFrame>
 #include <QVBoxLayout>
 
@@ -132,7 +132,7 @@
 YQPkgPatchFilterView::updateTotalDownloadSize()
 {
     set<ZyppSel> selectablesToInstall;
-    QTime calcTime;
+    QElapsedTimer calcTime;
     calcTime.start();
 
     for ( ZyppPoolIterator patches_it = zyppPatchesBegin();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgPatternList.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgPatternList.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgPatternList.cc    2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgPatternList.cc    2019-12-10 
17:36:52.000000000 +0100
@@ -78,7 +78,7 @@
         painter->save();
 
         YQPkgPatternCategoryItem *citem = 
dynamic_cast<YQPkgPatternCategoryItem *>(_view->itemFromIndex(index));
-        
+
         // special painting for category items
         if ( citem )
         {
@@ -94,7 +94,7 @@
         }
 
         YQPkgPatternListItem *item = dynamic_cast<YQPkgPatternListItem *>( 
_view->itemFromIndex( index ) );
-        
+
         if ( item )
         {
             //if ( index.column() == _view->howmanyCol() )
@@ -124,8 +124,9 @@
 
                     painter->fillRect( x, y,  fillWidth, h, fillColor );
 
-                    QString percentageText;
-                    percentageText.sprintf("%d/%d", item->installedPackages(), 
item->totalPackages());
+                    QString percentageText = QString( "%1/%2" )
+                        .arg( item->installedPackages() )
+                        .arg( item->totalPackages() );
 
                     painter->setPen( _view->palette().color( QPalette::Base ) 
);
                     painter->drawText( QRect( x, y,
@@ -140,7 +141,7 @@
             else
             {
                 painter->restore();
-                QItemDelegate::paint(painter, option, index);
+                QItemDelegate::paint( painter, option, index );
             }
         }
     }
@@ -165,7 +166,7 @@
     // configuring the web server. For the scope of the package selector, this
     // is only of little relevance, though.
 
-    headers << "";     _iconCol        = numCol++;
+    headers << "";             _iconCol        = numCol++;
     headers << _( "Pattern" ); _summaryCol     = numCol++;
 
     //headers << "";   _howmanyCol     = numCol++;
@@ -223,7 +224,7 @@
        fillList();
        selectSomething();
     }
-    
+
     yuiDebug() << "Creating pattern list done" << std::endl;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgRepoList.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgRepoList.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgRepoList.cc       2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgRepoList.cc       2019-12-10 
17:36:52.000000000 +0100
@@ -40,7 +40,7 @@
 /-*/
 
 #include <algorithm>
-#include <QDateTime>
+#include <QElapsedTimer>
 #include <QHeaderView>
 
 #define YUILogComponent "qt-pkg"
@@ -140,7 +140,7 @@
     emit filterStart();
 
     yuiMilestone() << "Collecting packages in selected repositories..." << 
endl;
-    QTime stopWatch;
+    QElapsedTimer stopWatch;
     stopWatch.start();
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgSearchFilterView.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgSearchFilterView.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgSearchFilterView.cc       2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgSearchFilterView.cc       2019-12-10 
17:36:52.000000000 +0100
@@ -47,7 +47,7 @@
 #include <QRadioButton>
 #include <QGroupBox>
 #include <QProgressDialog>
-#include <QDateTime>
+#include <QElapsedTimer>
 #include <QKeyEvent>
 #include <QMessageBox>
 
@@ -258,7 +258,7 @@
            parentWidget()->parentWidget()->setCursor(Qt::WaitCursor);
            progress.setCursor(Qt::ArrowCursor);
 
-           QTime timer;
+           QElapsedTimer timer;
            query.setCaseSensitive( _caseSensitive->isChecked() );
 
            switch ( _searchMode->currentIndex() )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-qt-pkg-2.46.9/src/YQPkgServiceList.cc 
new/libyui-qt-pkg-2.47.0/src/YQPkgServiceList.cc
--- old/libyui-qt-pkg-2.46.9/src/YQPkgServiceList.cc    2019-11-11 
13:07:30.000000000 +0100
+++ new/libyui-qt-pkg-2.47.0/src/YQPkgServiceList.cc    2019-12-10 
17:36:52.000000000 +0100
@@ -23,7 +23,7 @@
 #include <algorithm>
 #include <set>
 #include <string>
-#include <QDateTime>
+#include <QElapsedTimer>
 #include <QHeaderView>
 #include <QString>
 
@@ -120,7 +120,7 @@
     emit filterStart();
 
     yuiMilestone() << "Collecting packages in selected services..." << endl;
-    QTime stopWatch;
+    QElapsedTimer stopWatch;
     stopWatch.start();
 
     //


Reply via email to