Hello community, here is the log from the commit of package libyui-qt for openSUSE:Factory checked in at 2018-02-14 09:18:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libyui-qt (Old) and /work/SRC/openSUSE:Factory/.libyui-qt.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libyui-qt" Wed Feb 14 09:18:58 2018 rev:46 rq:573804 version:2.49.1 Changes: -------- --- /work/SRC/openSUSE:Factory/libyui-qt/libyui-qt.changes 2017-08-22 11:04:48.433117357 +0200 +++ /work/SRC/openSUSE:Factory/.libyui-qt.new/libyui-qt.changes 2018-02-14 09:19:00.326914277 +0100 @@ -1,0 +2,22 @@ +Mon Jan 8 17:09:26 UTC 2018 - shundham...@suse.com + +- Prevent segfault if an open dialog is left over (bsc#1074596): + Don't do anything widget related after the QApplication is + destroyed, in particular not deleting other widgets, even if + indirectly via YDialog::deleteAllDialogs() in YUI. +# 2.49.1 + +------------------------------------------------------------------- +Mon Dec 18 09:40:35 UTC 2017 - mvid...@suse.com + +- Don't probe X11 display, for better integration + with Wayland (bsc#1072411) +- 2.48.1 + +------------------------------------------------------------------- +Wed Nov 15 17:25:54 CET 2017 - shundham...@suse.de + +- Send a widget ID with Shift-F6 for automated testing (fate#324098) +- 2.48.0 + +------------------------------------------------------------------- Old: ---- libyui-qt-2.47.3.tar.bz2 New: ---- libyui-qt-2.49.1.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libyui-qt-doc.spec ++++++ --- /var/tmp/diff_new_pack.qZTiuy/_old 2018-02-14 09:19:01.222881801 +0100 +++ /var/tmp/diff_new_pack.qZTiuy/_new 2018-02-14 09:19:01.230881511 +0100 @@ -1,7 +1,7 @@ # # spec file for package libyui-qt-doc # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ %define so_version 8 Name: %{parent}-doc -Version: 2.47.3 +Version: 2.49.1 Release: 0 Source: %{parent}-%{version}.tar.bz2 @@ -31,7 +31,7 @@ BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: graphviz-gnome -BuildRequires: libyui-devel >= 3.0.4 +BuildRequires: libyui-devel >= 3.4.0 BuildRequires: texlive-latex Url: http://github.com/libyui/ ++++++ libyui-qt.spec ++++++ --- /var/tmp/diff_new_pack.qZTiuy/_old 2018-02-14 09:19:01.278879772 +0100 +++ /var/tmp/diff_new_pack.qZTiuy/_new 2018-02-14 09:19:01.290879337 +0100 @@ -1,7 +1,7 @@ # # spec file for package libyui-qt # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: libyui-qt -Version: 2.47.3 +Version: 2.49.1 Release: 0 Source: %{name}-%{version}.tar.bz2 @@ -29,12 +29,13 @@ BuildRequires: gcc-c++ BuildRequires: pkg-config -%define libyui_devel_version libyui-devel >= 3.1.2 +%define libyui_devel_version libyui-devel >= 3.4.0 BuildRequires: %{libyui_devel_version} BuildRequires: fontconfig-devel BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Gui) BuildRequires: pkgconfig(Qt5Svg) +BuildRequires: pkgconfig(Qt5Svg) BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(Qt5X11Extras) Provides: yui_backend = %{so_version} ++++++ libyui-qt-2.47.3.tar.bz2 -> libyui-qt-2.49.1.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.47.3/VERSION.cmake new/libyui-qt-2.49.1/VERSION.cmake --- old/libyui-qt-2.47.3/VERSION.cmake 2017-08-16 10:49:12.651502426 +0200 +++ new/libyui-qt-2.49.1/VERSION.cmake 2018-02-07 17:11:06.000000000 +0100 @@ -1,11 +1,11 @@ SET(VERSION_MAJOR "2") -SET(VERSION_MINOR "47") -SET(VERSION_PATCH "3") +SET(VERSION_MINOR "49") +SET(VERSION_PATCH "1") SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${GIT_SHA1_VERSION}" ) -##### This is need for the libyui core, ONLY. +##### This is needed for the libyui-qt core ONLY. ##### These will be overridden from exports in LibyuiConfig.cmake SET( SONAME_MAJOR "5" ) -SET( SONAME_MINOR "0" ) +SET( SONAME_MINOR "1" ) 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.47.3/package/libyui-qt-doc.spec new/libyui-qt-2.49.1/package/libyui-qt-doc.spec --- old/libyui-qt-2.47.3/package/libyui-qt-doc.spec 2017-08-16 10:49:12.655502426 +0200 +++ new/libyui-qt-2.49.1/package/libyui-qt-doc.spec 2018-02-07 17:11:06.000000000 +0100 @@ -20,7 +20,7 @@ %define so_version 8 Name: %{parent}-doc -Version: 2.47.3 +Version: 2.49.1 Release: 0 Source: %{parent}-%{version}.tar.bz2 @@ -31,8 +31,8 @@ BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: graphviz-gnome -BuildRequires: libyui-devel >= 3.0.4 BuildRequires: texlive-latex +BuildRequires: libyui-devel >= 3.4.0 Url: http://github.com/libyui/ Summary: Libyui-qt documentation diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.47.3/package/libyui-qt.changes new/libyui-qt-2.49.1/package/libyui-qt.changes --- old/libyui-qt-2.47.3/package/libyui-qt.changes 2017-08-16 10:49:12.655502426 +0200 +++ new/libyui-qt-2.49.1/package/libyui-qt.changes 2018-02-07 17:11:06.000000000 +0100 @@ -1,4 +1,26 @@ ------------------------------------------------------------------- +Mon Jan 8 17:09:26 UTC 2018 - shundham...@suse.com + +- Prevent segfault if an open dialog is left over (bsc#1074596): + Don't do anything widget related after the QApplication is + destroyed, in particular not deleting other widgets, even if + indirectly via YDialog::deleteAllDialogs() in YUI. +# 2.49.1 + +------------------------------------------------------------------- +Mon Dec 18 09:40:35 UTC 2017 - mvid...@suse.com + +- Don't probe X11 display, for better integration + with Wayland (bsc#1072411) +- 2.48.1 + +------------------------------------------------------------------- +Wed Nov 15 17:25:54 CET 2017 - shundham...@suse.de + +- Send a widget ID with Shift-F6 for automated testing (fate#324098) +- 2.48.0 + +------------------------------------------------------------------- Wed Aug 16 07:33:14 UTC 2017 - lsle...@suse.cz - Removed an obsolete non-working Qt initialization hack diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.47.3/package/libyui-qt.spec new/libyui-qt-2.49.1/package/libyui-qt.spec --- old/libyui-qt-2.47.3/package/libyui-qt.spec 2017-08-16 10:49:12.655502426 +0200 +++ new/libyui-qt-2.49.1/package/libyui-qt.spec 2018-02-07 17:11:06.000000000 +0100 @@ -17,7 +17,7 @@ Name: libyui-qt -Version: 2.47.3 +Version: 2.49.1 Release: 0 Source: %{name}-%{version}.tar.bz2 @@ -29,7 +29,7 @@ BuildRequires: gcc-c++ BuildRequires: pkg-config -%define libyui_devel_version libyui-devel >= 3.1.2 +%define libyui_devel_version libyui-devel >= 3.4.0 BuildRequires: %{libyui_devel_version} BuildRequires: fontconfig-devel BuildRequires: pkgconfig(Qt5Core) @@ -37,6 +37,7 @@ BuildRequires: pkgconfig(Qt5Widgets) BuildRequires: pkgconfig(Qt5Svg) BuildRequires: pkgconfig(Qt5X11Extras) +BuildRequires: pkgconfig(Qt5Svg) Provides: yui_backend = %{so_version} Url: http://github.com/libyui/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.47.3/src/YQDialog.cc new/libyui-qt-2.49.1/src/YQDialog.cc --- old/libyui-qt-2.47.3/src/YQDialog.cc 2017-08-16 10:49:12.663502426 +0200 +++ new/libyui-qt-2.49.1/src/YQDialog.cc 2018-02-07 17:11:06.000000000 +0100 @@ -635,6 +635,11 @@ } return; } + else if ( event->key() == Qt::Key_F6 && // Shift-F6: ask for a widget ID and send it + event->modifiers() == Qt::ShiftModifier ) + { + YQUI::ui()->askSendWidgetID(); + } else if ( event->key() == Qt::Key_F7 && // Shift-F7: toggle debug logging event->modifiers() == Qt::ShiftModifier ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.47.3/src/YQUI.cc new/libyui-qt-2.49.1/src/YQUI.cc --- old/libyui-qt-2.47.3/src/YQUI.cc 2017-08-16 10:49:12.671502426 +0200 +++ new/libyui-qt-2.49.1/src/YQUI.cc 2018-02-07 17:11:06.000000000 +0100 @@ -22,7 +22,7 @@ /-*/ -#include <rpc/types.h> // MAXHOSTNAMELEN +#include <sys/param.h> // MAXHOSTNAMELEN #include <dlfcn.h> #include <libintl.h> #include <algorithm> @@ -36,6 +36,8 @@ #include <QCursor> #include <QLocale> #include <QMessageLogContext> +#include <QMessageBox> +#include <QInputDialog> #define YUILogComponent "qt-ui" @@ -55,6 +57,8 @@ #include "YQWidgetFactory.h" #include "YQOptionalWidgetFactory.h" +#include "YQWizardButton.h" + #include "YQi18n.h" #include "utf8.h" @@ -145,9 +149,6 @@ _ui_argc = cmdLine.argc(); char ** argv = cmdLine.argv(); - // Probe X11 display for better error handling if it can't be opened - probeX11Display( cmdLine ); - yuiDebug() << "Creating QApplication" << std::endl; new QApplication( _ui_argc, argv ); Q_CHECK_PTR( qApp ); @@ -310,7 +311,7 @@ YQUI::~YQUI() { - yuiDebug() <<"Closing down Qt UI." << std::endl; + yuiMilestone() <<"Closing down Qt UI." << std::endl; // Intentionally NOT calling dlclose() to libqt-mt // (see constructor for explanation) @@ -327,8 +328,18 @@ void YQUI::uiThreadDestructor() { + yuiMilestone() <<"Destroying UI thread" << std::endl; + if ( qApp ) // might already be reset to 0 internally from Qt { + if ( YDialog::openDialogsCount() > 0 ) + { + yuiError() << YDialog::openDialogsCount() << " open dialogs left over" << endl; + yuiError() << "Topmost dialog:" << endl; + YDialog::topmostDialog()->dumpWidgetTree(); + } + + YDialog::deleteAllDialogs(); qApp->exit(); qApp->deleteLater(); } @@ -569,28 +580,7 @@ void YQUI::probeX11Display( const YCommandLine & cmdLine ) { - int displayArgPos = cmdLine.find( "-display" ); - std::string displayNameStr; - - if ( displayArgPos > 0 && displayArgPos+1 < cmdLine.argc() ) - { - displayNameStr = cmdLine[ displayArgPos+1 ]; - yuiMilestone() << "Using X11 display \"" << displayNameStr << "\"" << std::endl; - } - - const char * displayName = ( displayNameStr.empty() ? 0 : displayNameStr.c_str() ); - Display * display = XOpenDisplay( displayName ); - - if ( display ) - { - yuiDebug() << "Probing X11 display successful" << std::endl; - XCloseDisplay( display ); - } - else - { - string msg = "Can't open display " + displayNameStr; - YUI_THROW( YUIException( msg ) ); - } + // obsolete, see https://bugzilla.suse.com/show_bug.cgi?id=1072411 } @@ -608,6 +598,43 @@ } +void YQUI::askSendWidgetID() +{ + QWidget * parent = 0; + YDialog * dialog = YDialog::currentDialog( false ); // doThrow + + if ( dialog ) + parent = (QWidget *) dialog->widgetRep(); + + QString id = QInputDialog::getText( parent, + _( "Widget ID" ), // dialog title + _( "Enter Widget ID:" ) // label + ); + if ( ! id.isEmpty() ) + { + try + { + YWidget * widget = sendWidgetID( toUTF8( id ) ); + YQGenericButton * yqButton = dynamic_cast<YQGenericButton *>( widget ); + + if ( yqButton ) + { + yuiMilestone() << "Activating " << widget << endl; + yqButton->activate(); + } + } + catch ( YUIWidgetNotFoundException & ex ) + { + YUI_CAUGHT( ex ); + QMessageBox::warning( parent, + _( "Error" ), // title + _( "No widget with ID \"%1\"" ).arg( id ) ); + } + } +} + + + YQUISignalReceiver::YQUISignalReceiver() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-qt-2.47.3/src/YQUI.h new/libyui-qt-2.49.1/src/YQUI.h --- old/libyui-qt-2.47.3/src/YQUI.h 2017-08-16 10:49:12.671502426 +0200 +++ new/libyui-qt-2.49.1/src/YQUI.h 2018-02-07 17:11:06.000000000 +0100 @@ -217,6 +217,12 @@ void askPlayMacro(); /** + * Open a pop-up dialog to ask the user for a widget ID and then send it + * with sendWidgetID(). + **/ + void askSendWidgetID(); + + /** * Block (or unblock) events. If events are blocked, any event sent * should be ignored until events are unblocked again. * @@ -274,12 +280,12 @@ * Returns the application name for the window title (e.g. "YaST2@hostname") **/ QString applicationTitle() { return _applicationTitle; } - + /** * Sets the application name for the window title **/ void setApplicationTitle(const QString& title) { _applicationTitle=title; } - + protected: /**