Hello community, here is the log from the commit of package libyui-qt for openSUSE:Factory checked in at 2019-12-14 12:03:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libyui-qt (Old) and /work/SRC/openSUSE:Factory/.libyui-qt.new.4691 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libyui-qt" Sat Dec 14 12:03:28 2019 rev:66 rq:755635 version:2.52.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libyui-qt/libyui-qt.changes 2019-11-20 10:26:33.954554256 +0100 +++ /work/SRC/openSUSE:Factory/.libyui-qt.new.4691/libyui-qt.changes 2019-12-14 12:04:18.367394366 +0100 @@ -1,0 +2,27 @@ +Mon Dec 9 10:57:10 UTC 2019 - Rodion Iafarov <[email protected]> + +- Add support to operate on many widgets with rest-api (bsc#1132247) +- Increase SO version to 11 +- 2.52.0 + +------------------------------------------------------------------- +Wed Dec 4 11:55:04 CET 2019 - [email protected] + +- Added a banner on the upper/right side of the YaST layout. + The label can be set by the environment variable YAST_BANNER + (jsc#SLE-9424). +- 2.51.7 + +------------------------------------------------------------------- +Thu Nov 28 11:11:41 UTC 2019 - Stefan Hundhammer <[email protected]> + +- Fixed Qt 5.14 deprecated warnings (bsc#1155550) +- 2.51.6 + +------------------------------------------------------------------- +Wed Nov 20 16:26:49 UTC 2019 - Stefan Hundhammer <[email protected]> + +- Prevent crash on [PrintScreen] of a main window (bsc#1157170) +- 2.51.5 + +------------------------------------------------------------------- @@ -2250 +2276,0 @@ - @@ -2405 +2430,0 @@ - @@ -2512 +2536,0 @@ - Old: ---- libyui-qt-2.51.4.tar.bz2 New: ---- libyui-qt-2.52.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libyui-qt-doc.spec ++++++ --- /var/tmp/diff_new_pack.KIedJ5/_old 2019-12-14 12:04:20.099394065 +0100 +++ /var/tmp/diff_new_pack.KIedJ5/_new 2019-12-14 12:04:20.139394059 +0100 @@ -17,11 +17,11 @@ %define parent libyui-qt -%define so_version 10 +%define so_version 11 Name: %{parent}-doc # DO NOT manually bump the version here; instead, use rake version:bump -Version: 2.51.4 +Version: 2.52.0 Release: 0 Source: %{parent}-%{version}.tar.bz2 ++++++ libyui-qt.spec ++++++ --- /var/tmp/diff_new_pack.KIedJ5/_old 2019-12-14 12:04:20.463394002 +0100 +++ /var/tmp/diff_new_pack.KIedJ5/_new 2019-12-14 12:04:20.479393999 +0100 @@ -18,11 +18,11 @@ Name: libyui-qt # DO NOT manually bump the version here; instead, use rake version:bump -Version: 2.51.4 +Version: 2.52.0 Release: 0 Source: %{name}-%{version}.tar.bz2 -%define so_version 10 +%define so_version 11 %define bin_name %{name}%{so_version} BuildRequires: boost-devel @@ -30,7 +30,7 @@ BuildRequires: gcc-c++ BuildRequires: pkg-config -%define libyui_devel_version libyui-devel >= 3.8.3 +%define libyui_devel_version libyui-devel >= 3.9.0 BuildRequires: %{libyui_devel_version} BuildRequires: fontconfig-devel BuildRequires: pkgconfig(Qt5Core) ++++++ libyui-qt-2.51.4.tar.bz2 -> libyui-qt-2.52.0.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/Dockerfile new/libyui-qt-2.52.0/Dockerfile --- old/libyui-qt-2.51.4/Dockerfile 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/Dockerfile 2019-12-10 17:07:37.000000000 +0100 @@ -1,4 +1,4 @@ -# Use the libyui/devel image as the base -FROM libyui/devel +# Use the libyui-devel image as the base +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-2.51.4/VERSION.cmake new/libyui-qt-2.52.0/VERSION.cmake --- old/libyui-qt-2.51.4/VERSION.cmake 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/VERSION.cmake 2019-12-10 17:07:37.000000000 +0100 @@ -1,11 +1,11 @@ SET(VERSION_MAJOR "2") -SET(VERSION_MINOR "51") -SET(VERSION_PATCH "4") +SET(VERSION_MINOR "52") +SET(VERSION_PATCH "0") SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${GIT_SHA1_VERSION}" ) ##### This is needed for the libyui-qt core ONLY. ##### These will be overridden from exports in LibyuiConfig.cmake -SET( SONAME_MAJOR "10" ) +SET( SONAME_MAJOR "11" ) SET( SONAME_MINOR "0" ) SET( SONAME_PATCH "0" ) SET( SONAME "${SONAME_MAJOR}.${SONAME_MINOR}.${SONAME_PATCH}" ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/package/libyui-qt-doc.spec new/libyui-qt-2.52.0/package/libyui-qt-doc.spec --- old/libyui-qt-2.51.4/package/libyui-qt-doc.spec 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/package/libyui-qt-doc.spec 2019-12-10 17:07:37.000000000 +0100 @@ -17,11 +17,11 @@ %define parent libyui-qt -%define so_version 10 +%define so_version 11 Name: %{parent}-doc # DO NOT manually bump the version here; instead, use rake version:bump -Version: 2.51.4 +Version: 2.52.0 Release: 0 Source: %{parent}-%{version}.tar.bz2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/package/libyui-qt.changes new/libyui-qt-2.52.0/package/libyui-qt.changes --- old/libyui-qt-2.51.4/package/libyui-qt.changes 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/package/libyui-qt.changes 2019-12-10 17:07:37.000000000 +0100 @@ -1,4 +1,31 @@ ------------------------------------------------------------------- +Mon Dec 9 10:57:10 UTC 2019 - Rodion Iafarov <[email protected]> + +- Add support to operate on many widgets with rest-api (bsc#1132247) +- Increase SO version to 11 +- 2.52.0 + +------------------------------------------------------------------- +Wed Dec 4 11:55:04 CET 2019 - [email protected] + +- Added a banner on the upper/right side of the YaST layout. + The label can be set by the environment variable YAST_BANNER + (jsc#SLE-9424). +- 2.51.7 + +------------------------------------------------------------------- +Thu Nov 28 11:11:41 UTC 2019 - Stefan Hundhammer <[email protected]> + +- Fixed Qt 5.14 deprecated warnings (bsc#1155550) +- 2.51.6 + +------------------------------------------------------------------- +Wed Nov 20 16:26:49 UTC 2019 - Stefan Hundhammer <[email protected]> + +- Prevent crash on [PrintScreen] of a main window (bsc#1157170) +- 2.51.5 + +------------------------------------------------------------------- Thu Nov 14 11:31:34 UTC 2019 - Stefan Hundhammer <[email protected]> - Mirror layout direction in Farsi (bsc#1156437) @@ -53,7 +80,7 @@ Tue May 7 09:39:02 UTC 2019 - Stefan Hundhammer <[email protected]> - Check for correct Qt version to fix build with Qt 5.13 (bsc#1130502) -- 2.50.3 +- 2.50.3 ------------------------------------------------------------------- Thu Apr 18 11:53:38 UTC 2019 - Ladislav Slezak <[email protected]> @@ -2247,7 +2274,6 @@ packages as newer - Display patch category in patches view - ------------------------------------------------------------------- Thu Mar 9 18:28:55 CET 2006 - [email protected] @@ -2402,7 +2428,6 @@ - Migrated pkg description popup (for hyperlinks) in PkgSel to ZYPP - ------------------------------------------------------------------- Tue Feb 14 19:14:42 CET 2006 - [email protected] @@ -2510,7 +2535,6 @@ - RPM groups - Search - ------------------------------------------------------------------- Wed Nov 16 14:57:56 CET 2005 - [email protected] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/package/libyui-qt.spec new/libyui-qt-2.52.0/package/libyui-qt.spec --- old/libyui-qt-2.51.4/package/libyui-qt.spec 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/package/libyui-qt.spec 2019-12-10 17:07:37.000000000 +0100 @@ -18,11 +18,11 @@ Name: libyui-qt # DO NOT manually bump the version here; instead, use rake version:bump -Version: 2.51.4 +Version: 2.52.0 Release: 0 Source: %{name}-%{version}.tar.bz2 -%define so_version 10 +%define so_version 11 %define bin_name %{name}%{so_version} BuildRequires: boost-devel @@ -30,7 +30,7 @@ BuildRequires: gcc-c++ BuildRequires: pkg-config -%define libyui_devel_version libyui-devel >= 3.8.3 +%define libyui_devel_version libyui-devel >= 3.9.0 BuildRequires: %{libyui_devel_version} BuildRequires: fontconfig-devel BuildRequires: pkgconfig(Qt5Core) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/QY2DiskUsageList.cc new/libyui-qt-2.52.0/src/QY2DiskUsageList.cc --- old/libyui-qt-2.51.4/src/QY2DiskUsageList.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/QY2DiskUsageList.cc 2019-12-10 17:07:37.000000000 +0100 @@ -361,8 +361,12 @@ painter->fillRect( x, y, fillWidth, h, fillColor ); - QString percentageText; - percentageText.sprintf( "%d%%", usedPercent() ); + QString percentageText = QString( "%1%" ).arg( usedPercent() ); + + // Yes, really one % to get a literal percent sign: Unlike most similar + // functions like printf(), QString::arg() does not require (or allow) + // a literal percent sign to be duplicated; that would result in two + // percent signs in the output. if ( usedPercent() > 50 ) { painter->setPen( treeWidget()->palette().color( QPalette::Base ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQCheckBoxFrame.cc new/libyui-qt-2.52.0/src/YQCheckBoxFrame.cc --- old/libyui-qt-2.51.4/src/YQCheckBoxFrame.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQCheckBoxFrame.cc 2019-12-10 17:07:37.000000000 +0100 @@ -152,15 +152,14 @@ if ( hasChildren() ) { - int left, top, right, bottom; - getContentsMargins( &left, &top, &right, &bottom ); - int newChildWidth = newWidth - left - right; - int newChildHeight = newHeight - bottom - top; + QMargins margins = contentsMargins(); + int newChildWidth = newWidth - margins.left() - margins.right(); + int newChildHeight = newHeight - margins.bottom() - margins.top(); firstChild()->setSize( newChildWidth, newChildHeight ); QWidget * qChild = (QWidget *) firstChild()->widgetRep(); - qChild->move( left, top ); + qChild->move( margins.left(), margins.top() ); } } @@ -168,20 +167,18 @@ int YQCheckBoxFrame::preferredWidth() { int preferredWidth = hasChildren() ? firstChild()->preferredWidth() : 0; - int left, top, right, bottom; - getContentsMargins( &left, &top, &right, &bottom ); + QMargins margins = contentsMargins(); - return preferredWidth + left + right; + return preferredWidth + margins.left() + margins.right(); } int YQCheckBoxFrame::preferredHeight() { int preferredHeight = hasChildren() ? firstChild()->preferredHeight() : 0; - int left, top, right, bottom; - getContentsMargins( &left, &top, &right, &bottom ); + QMargins margins = contentsMargins(); - return preferredHeight + top + left; + return preferredHeight + margins.top() + margins.left(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQCustomStatusItemSelector.cc new/libyui-qt-2.52.0/src/YQCustomStatusItemSelector.cc --- old/libyui-qt-2.51.4/src/YQCustomStatusItemSelector.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQCustomStatusItemSelector.cc 2019-12-10 17:07:37.000000000 +0100 @@ -141,6 +141,13 @@ } +void YQCustomStatusItemSelector::activateItem( YItem * item ) +{ + // send an activation event for this widget + if ( notify() ) + YQUI::ui()->sendEvent( new YMenuEvent( item ) ); +} + //----------------------------------------------------------------------------- @@ -230,4 +237,3 @@ { emit clicked( this ); } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQCustomStatusItemSelector.h new/libyui-qt-2.52.0/src/YQCustomStatusItemSelector.h --- old/libyui-qt-2.51.4/src/YQCustomStatusItemSelector.h 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQCustomStatusItemSelector.h 2019-12-10 17:07:37.000000000 +0100 @@ -74,6 +74,12 @@ **/ const QIcon & statusIcon( int status ) const; + /** + * Activate selected item. Can be used in tests to simulate user input. + * + * Derived classes are required to implement this. + **/ + virtual void activateItem( YItem * item ); protected slots: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQDumbTab.cc new/libyui-qt-2.52.0/src/YQDumbTab.cc --- old/libyui-qt-2.51.4/src/YQDumbTab.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQDumbTab.cc 2019-12-10 17:07:37.000000000 +0100 @@ -233,3 +233,11 @@ } } + +void +YQDumbTab::activate() +{ + // send an activation event for this widget + if ( notify() ) + YQUI::ui()->sendEvent( new YWidgetEvent( this,YEvent::Activated ) ); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQDumbTab.h new/libyui-qt-2.52.0/src/YQDumbTab.h --- old/libyui-qt-2.51.4/src/YQDumbTab.h 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQDumbTab.h 2019-12-10 17:07:37.000000000 +0100 @@ -112,6 +112,13 @@ **/ virtual void setSize( int newWidth, int newHeight ); + /** + * Activate selected tab. Can be used in tests to simulate user input. + * + * Derived classes are required to implement this. + **/ + virtual void activate(); + public slots: /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQFrame.cc new/libyui-qt-2.52.0/src/YQFrame.cc --- old/libyui-qt-2.51.4/src/YQFrame.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQFrame.cc 2019-12-10 17:07:37.000000000 +0100 @@ -65,15 +65,14 @@ if ( hasChildren() ) { - int left, top, right, bottom; - getContentsMargins( &left, &top, &right, &bottom ); - int newChildWidth = newWidth - left - right; - int newChildHeight = newHeight - bottom - top; + QMargins margins = contentsMargins(); + int newChildWidth = newWidth - margins.left() - margins.right(); + int newChildHeight = newHeight - margins.bottom() - margins.top(); firstChild()->setSize( newChildWidth, newChildHeight ); QWidget * qChild = (QWidget *) firstChild()->widgetRep(); - qChild->move( left, top ); + qChild->move( margins.left(), margins.top() ); } } @@ -89,10 +88,9 @@ int YQFrame::preferredWidth() { int preferredWidth = hasChildren() ? firstChild()->preferredWidth() : 0; - int left, top, right, bottom; - getContentsMargins( &left, &top, &right, &bottom ); + QMargins margins = contentsMargins(); - preferredWidth += left + right; + preferredWidth += margins.left() + margins.right(); if ( minimumSizeHint().width() > preferredWidth ) preferredWidth = minimumSizeHint().width(); @@ -104,9 +102,8 @@ int YQFrame::preferredHeight() { int preferredHeight = hasChildren() ? firstChild()->preferredHeight() : 0; - int left, top, right, bottom; - getContentsMargins( &left, &top, &right, &bottom ); + QMargins margins = contentsMargins(); - return preferredHeight + top + left; + return preferredHeight + margins.top() + margins.left(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQItemSelector.cc new/libyui-qt-2.52.0/src/YQItemSelector.cc --- old/libyui-qt-2.51.4/src/YQItemSelector.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQItemSelector.cc 2019-12-10 17:07:37.000000000 +0100 @@ -292,6 +292,12 @@ } +void YQItemSelector::activateItem( YItem * item ) +{ + if( notify() ) + YQUI::ui()->sendEvent( new YWidgetEvent( this, YEvent::ValueChanged ) ); +} + //----------------------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQItemSelector.h new/libyui-qt-2.52.0/src/YQItemSelector.h --- old/libyui-qt-2.51.4/src/YQItemSelector.h 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQItemSelector.h 2019-12-10 17:07:37.000000000 +0100 @@ -145,6 +145,12 @@ **/ void addItemWidget( YQSelectorItemWidget * itemWidget ); + /** + * Activate selected item. Can be used in tests to simulate user input. + * + * Derived classes are required to implement this. + **/ + virtual void activateItem( YItem * item ); protected slots: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQMenuButton.cc new/libyui-qt-2.52.0/src/YQMenuButton.cc --- old/libyui-qt-2.51.4/src/YQMenuButton.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQMenuButton.cc 2019-12-10 17:07:37.000000000 +0100 @@ -225,3 +225,11 @@ return true; } + + +void +YQMenuButton::activateItem( YMenuItem * item ) +{ + if ( item ) + YQUI::ui()->sendEvent( new YMenuEvent( item ) ); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQMenuButton.h new/libyui-qt-2.52.0/src/YQMenuButton.h --- old/libyui-qt-2.51.4/src/YQMenuButton.h 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQMenuButton.h 2019-12-10 17:07:37.000000000 +0100 @@ -97,6 +97,12 @@ **/ virtual bool setKeyboardFocus(); + /** + * Activate the item selected in the tree. Can be used in tests to simulate user input. + * + * Derived classes are required to implement this. + **/ + virtual void activateItem( YMenuItem * item ); protected slots: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQRichText.cc new/libyui-qt-2.52.0/src/YQRichText.cc --- old/libyui-qt-2.51.4/src/YQRichText.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQRichText.cc 2019-12-10 17:07:37.000000000 +0100 @@ -154,6 +154,12 @@ } +void YQRichText::activateLink( const string & url ) +{ + YQUI::ui()->sendEvent( new YMenuEvent( url ) ); +} + + void YQRichText::linkClicked( const QUrl & url ) { // yuiDebug() << "Selected hyperlink \"" << url.toString() << "\" << endl; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQRichText.h new/libyui-qt-2.52.0/src/YQRichText.h --- old/libyui-qt-2.51.4/src/YQRichText.h 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQRichText.h 2019-12-10 17:07:37.000000000 +0100 @@ -151,6 +151,12 @@ **/ virtual void setHScrollValue( const std::string & newValue ) override; + /** + * Derived classes should implement this, method is used to trigger event + * like user has clicked link in the RichText + **/ + virtual void activateLink( const std::string & url ); + protected slots: /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQTree.cc new/libyui-qt-2.52.0/src/YQTree.cc --- old/libyui-qt-2.51.4/src/YQTree.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQTree.cc 2019-12-10 17:07:37.000000000 +0100 @@ -47,10 +47,10 @@ -YQTree::YQTree( YWidget * parent, - const string & label, - bool multiSelectionMode, - bool recursiveSelectionMode ) +YQTree::YQTree( YWidget * parent, + const string & label, + bool multiSelectionMode, + bool recursiveSelectionMode ) : QFrame( (QWidget *) parent->widgetRep() ) , YTree( parent, label, multiSelectionMode, recursiveSelectionMode ) { @@ -147,10 +147,10 @@ clone = new YQTreeItem( this, _qt_treeWidget, orig, _nextSerialNo++ ); YUI_CHECK_NEW( clone ); - + if (orig->selected()) { - selectItem(clone); + selectItem(clone); } if ( orig->hasChildren() ) @@ -191,8 +191,8 @@ _qt_treeWidget->setCurrentItem( item ); item->setSelected( true ); - if ( hasMultiSelection() ) - item->setCheckState( 0, Qt::Checked ); + if ( hasMultiSelection() ) + item->setCheckState( 0, Qt::Checked ); if ( item->parent() ) openBranch( (YQTreeItem *) item->parent() ); @@ -246,18 +246,18 @@ if ( hasMultiSelection() ) { - QTreeWidgetItemIterator it( _qt_treeWidget); - while (*it) - { - YQTreeItem * treeItem = dynamic_cast<YQTreeItem *> (*it); - - if ( treeItem ) - { - treeItem->setCheckState( 0, Qt::Unchecked ); - treeItem->origItem()->setSelected( false ); - } - ++it; - } + QTreeWidgetItemIterator it( _qt_treeWidget); + while (*it) + { + YQTreeItem * treeItem = dynamic_cast<YQTreeItem *> (*it); + + if ( treeItem ) + { + treeItem->setCheckState( 0, Qt::Unchecked ); + treeItem->origItem()->setSelected( false ); + } + ++it; + } } } @@ -303,27 +303,27 @@ if ( hasMultiSelection() ) { if ( recursiveSelection() ) - YQUI::ui()->busyCursor(); + YQUI::ui()->busyCursor(); if ( item->checkState(0) == Qt::Checked ) YQTree::selectItem( item, true, recursiveSelection() ); - else + else YQTree::selectItem( item, false, recursiveSelection() ); if ( recursiveSelection() ) - YQUI::ui()->normalCursor(); + YQUI::ui()->normalCursor(); } else { - QList<QTreeWidgetItem *> items = _qt_treeWidget->selectedItems (); + QList<QTreeWidgetItem *> items = _qt_treeWidget->selectedItems (); - if ( ! items.empty() ) - { - QTreeWidgetItem *qItem = items.first(); + if ( ! items.empty() ) + { + QTreeWidgetItem *qItem = items.first(); selectItem( dynamic_cast<YQTreeItem *> (qItem) ); - } + } } @@ -347,8 +347,8 @@ if ( ! hasMultiSelection() && ! items.empty() ) { - QTreeWidgetItem *qItem = items.first(); - selectItem( dynamic_cast<YQTreeItem *> (qItem) ); + QTreeWidgetItem *qItem = items.first(); + selectItem( dynamic_cast<YQTreeItem *> (qItem) ); } @@ -408,7 +408,7 @@ void YQTree::slotContextMenu ( const QPoint & pos ) { - if ( ! _qt_treeWidget || ! _qt_treeWidget->viewport() ) + if ( ! _qt_treeWidget || ! _qt_treeWidget->viewport() ) return; YQUI::yqApp()->setContextMenuPos( _qt_treeWidget->viewport()->mapToGlobal( pos ) ); @@ -425,16 +425,22 @@ if ( currentQItem ) { - YQTreeItem * item = dynamic_cast<YQTreeItem *> (currentQItem); + YQTreeItem * item = dynamic_cast<YQTreeItem *> (currentQItem); - if ( item ) - return item->origItem(); + if ( item ) + return item->origItem(); } return 0; } +void YQTree::activate() +{ + // send an activation event for this widget + if ( notify() ) + YQUI::ui()->sendEvent( new YWidgetEvent( this,YEvent::Activated ) ); +} /*============================================================================*/ @@ -489,17 +495,17 @@ if ( _origItem->hasIconName() ) { - QIcon icon = QIcon( _tree->iconFullPath( _origItem ).c_str() ); - - if ( icon.isNull() ) - icon = YQUI::ui()->loadIcon( _origItem->iconName() ); + QIcon icon = QIcon( _tree->iconFullPath( _origItem ).c_str() ); + + if ( icon.isNull() ) + icon = YQUI::ui()->loadIcon( _origItem->iconName() ); if ( !icon.isNull() ) setData( 0, Qt::DecorationRole, icon ); } if ( tree->hasMultiSelection() ) - setCheckState(0,Qt::Unchecked); + setCheckState(0,Qt::Unchecked); } @@ -522,8 +528,10 @@ * by names (ASCII sort). Better let the application handle this. */ - QString strKey; - strKey.sprintf( "%08d", _serialNo ); + QString strKey = QString( "%1" ).arg( _serialNo, + 8, // fieldWidth (positive aligns right) + 10, // base + QChar( '0' ) ); // fillChar return strKey; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQTree.h new/libyui-qt-2.52.0/src/YQTree.h --- old/libyui-qt-2.51.4/src/YQTree.h 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQTree.h 2019-12-10 17:07:37.000000000 +0100 @@ -134,7 +134,13 @@ * Reimplemented from YMultiSelectionBox. **/ virtual YTreeItem * currentItem(); - + + /** + * Activate the item selected in the tree. Can be used in tests to simulate user input. + * + * Derived classes are required to implement this. + **/ + virtual void activate(); protected slots: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQUI.cc new/libyui-qt-2.52.0/src/YQUI.cc --- old/libyui-qt-2.51.4/src/YQUI.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQUI.cc 2019-12-10 17:07:37.000000000 +0100 @@ -109,7 +109,6 @@ _fatalError = false; _fullscreen = false; _noborder = false; - screenShotNameTemplate = ""; _blockedLevel = 0; qInstallMessageHandler( qMessageHandler ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQUI.h new/libyui-qt-2.52.0/src/YQUI.h --- old/libyui-qt-2.51.4/src/YQUI.h 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQUI.h 2019-12-10 17:07:37.000000000 +0100 @@ -360,7 +360,6 @@ static YQUI * _ui; QMap<QString, int> screenShotNo; - QString screenShotNameTemplate; bool _fullscreen; bool _noborder; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQUI_builtins.cc new/libyui-qt-2.52.0/src/YQUI_builtins.cc --- old/libyui-qt-2.51.4/src/YQUI_builtins.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQUI_builtins.cc 2019-12-10 17:07:37.000000000 +0100 @@ -100,7 +100,11 @@ // QWidget * dialog = (QWidget *) YDialog::currentDialog()->widgetRep(); - QWindow * window = dialog->windowHandle(); + YUI_CHECK_PTR( dialog ); + QWidget * topLevelWidget = dialog->window(); + YUI_CHECK_PTR( topLevelWidget ); + QWindow * window = topLevelWidget->windowHandle(); + YUI_CHECK_PTR( window ); QPixmap screenShot = window->screen()->grabWindow( window->winId() ); XSync( QX11Info::display(), false ); QString fileName ( stl_filename.c_str() ); @@ -110,70 +114,70 @@ { interactive = true; - // Open a file selection box. Figure out a reasonable default - // directory / file name. + // Open a file selection box. Figure out a reasonable default + // directory / file name. - if ( screenShotNameTemplate.isEmpty() ) - { - // - // Initialize screen shot directory - // - - QString home = QDir::homePath(); - char * ssdir = getenv( "Y2SCREENSHOTS" ); - QString dir = ssdir ? fromUTF8( ssdir ) : "yast2-screen-shots"; - - if ( home == "/" ) - { - // Special case: $HOME is not set. This is normal in the inst-sys. - // In this case, rather than simply dumping all screen shots into - // /tmp which is world-writable, let's try to create a subdirectory - // below /tmp with restrictive permissions. - // If that fails, trust nobody - in particular, do not suggest /tmp - // as the default in the file selection box. - - dir = "/tmp/" + dir; - - if ( mkdir( toUTF8( dir ).c_str(), 0700 ) == -1 ) - dir = ""; - } - else - { - // For all others let's create a directory ~/yast2-screen-shots and - // simply ignore if this is already present. This gives the user a - // chance to create symlinks to a better location if he wishes so. - - dir = home + "/" + dir; - (void) mkdir( toUTF8( dir ).c_str(), 0750 ); - } - - screenShotNameTemplate = dir + "/%s-%03d.png"; - } - - - // - // Figure out a file name - // - - const char * baseName = "yast2"; - - int no = screenShotNo[ baseName ]; - fileName.sprintf( qPrintable( screenShotNameTemplate ), baseName, no ); - yuiDebug() << "Screenshot: " << fileName << endl; + // + // Initialize screen shot directory + // + + QString home = QDir::homePath(); + char * ssdir = getenv( "Y2SCREENSHOTS" ); + QString dir = ssdir ? fromUTF8( ssdir ) : "yast2-screen-shots"; + if ( home == "/" ) { - fileName = YQApplication::askForSaveFileName( fileName, - QString( "*.png" ) , - _( "Save screen shot to..." ) ); + // Special case: $HOME is not set. This is normal in the inst-sys. + // In this case, rather than simply dumping all screen shots into + // /tmp which is world-writable, let's try to create a subdirectory + // below /tmp with restrictive permissions. + // If that fails, trust nobody - in particular, do not suggest /tmp + // as the default in the file selection box. + + dir = "/tmp/" + dir; + + if ( mkdir( toUTF8( dir ).c_str(), 0700 ) == -1 ) + dir = ""; + } + else + { + // For all others let's create a directory ~/yast2-screen-shots and + // simply ignore if this is already present. This gives the user a + // chance to create symlinks to a better location if he wishes so. + + dir = home + "/" + dir; + (void) mkdir( toUTF8( dir ).c_str(), 0750 ); } - if ( fileName.isEmpty() ) - { - yuiDebug() << "Save screen shot canceled by user" << endl; - return; - } - screenShotNo.insert( baseName, ++no ); + // + // Figure out a file name + // + + const char * baseName = "yast2"; + + int no = screenShotNo[ baseName ]; + fileName = QString( "%1/%2-%3.png" ) + .arg( dir ) // %1 + .arg( baseName ) // %2 + .arg( no, // %3 + 3, // fieldWidth (positive aligns right) + 10, // base + QChar( '0' ) ); // fillChar + + yuiDebug() << "Screenshot: " << fileName << endl; + + fileName = YQApplication::askForSaveFileName( fileName, + QString( "*.png" ) , + _( "Save screen shot to..." ) ); + + if ( fileName.isEmpty() ) + { + yuiDebug() << "Save screen shot canceled by user" << endl; + return; + } + + screenShotNo.insert( baseName, ++no ); } // if fileName.isEmpty() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQWizard.cc new/libyui-qt-2.52.0/src/YQWizard.cc --- old/libyui-qt-2.51.4/src/YQWizard.cc 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQWizard.cc 2019-12-10 17:07:37.000000000 +0100 @@ -135,6 +135,7 @@ _menuBar = 0; _dialogIcon = 0; _dialogLogo = 0; + _dialogBanner = 0; _dialogHeading = 0; _contents = 0; _backButton = 0; @@ -714,7 +715,16 @@ _dialogLogo->setSizePolicy( QSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ) ); // hor/vert _dialogLogo->setMinimumHeight(59); // FIXME: control size via stylesheet, did not find how _dialogLogo->setMinimumWidth(100); + logoHBox->addStretch(); + + _dialogBanner = new QLabel( _workArea ); + _dialogBanner->setText( QString( getenv( "YAST_BANNER" ) ) ); + YUI_CHECK_NEW( _dialogBanner ); + logoHBox->addWidget( _dialogBanner ); + _dialogBanner->setObjectName( "DialogBanner" ); + _dialogBanner->setAlignment( Qt::AlignCenter ); + QY2Styler::styler()->registerChildWidget( this, _dialogBanner ); } // diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.51.4/src/YQWizard.h new/libyui-qt-2.52.0/src/YQWizard.h --- old/libyui-qt-2.51.4/src/YQWizard.h 2019-11-14 12:41:29.000000000 +0100 +++ new/libyui-qt-2.52.0/src/YQWizard.h 2019-12-10 17:07:37.000000000 +0100 @@ -612,6 +612,7 @@ QMenuBar * _menuBar; QLabel * _dialogIcon; QLabel * _dialogLogo; + QLabel * _dialogBanner; QLabel * _dialogHeading; YQAlignment * _contents; YQWizardButton * _backButton;
