Hello community, here is the log from the commit of package python-qt5 for openSUSE:Factory checked in at 2019-06-12 13:07:05 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-qt5 (Old) and /work/SRC/openSUSE:Factory/.python-qt5.new.4811 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-qt5" Wed Jun 12 13:07:05 2019 rev:36 rq:707698 version:5.12.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-qt5/python-qt5.changes 2019-04-22 12:24:28.532936863 +0200 +++ /work/SRC/openSUSE:Factory/.python-qt5.new.4811/python-qt5.changes 2019-06-12 13:07:08.673162256 +0200 @@ -1,0 +2,14 @@ +Mon Jun 3 18:39:15 UTC 2019 - Christophe Giboudeaux <christo...@krop.fr> + +- Update to 5.12.2 + * Fixed QIcon(QIconEngine) to reflect that the engine is explicitly + shared between every copy of the icon. + * Eliminated a warning message from QObject::connect() + * Increased the number of QQuickItem types that can be registered + from 30 to 60. + * Fixed the QPolygon ctors + * Fixed pyuic's handling of 'sizePolicy' properties. + * Fixed pylupdate to handle empty strings at the end of a line so + that the line number remains correct. + +------------------------------------------------------------------- Old: ---- PyQt5_gpl-5.12.1.tar.gz New: ---- PyQt5_gpl-5.12.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-qt5.spec ++++++ --- /var/tmp/diff_new_pack.UGktw0/_old 2019-06-12 13:07:09.549161888 +0200 +++ /var/tmp/diff_new_pack.UGktw0/_new 2019-06-12 13:07:09.569161879 +0200 @@ -18,20 +18,20 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-qt5 -Version: 5.12.1 +Version: 5.12.2 Release: 0 Summary: Python bindings for Qt 5 License: SUSE-GPL-2.0-with-FLOSS-exception OR GPL-3.0-only OR NonFree Group: Development/Libraries/Python URL: https://www.riverbankcomputing.com/software/pyqt -Source: PyQt5_gpl-%{version}.tar.gz +Source: https://www.riverbankcomputing.com/static/Downloads/PyQt5/%{version}/PyQt5_gpl-%{version}.tar.gz Source99: %{name}-rpmlintrc # PATCH-FIX-OPENSUSE - disable-rpaths.diff - Disable RPATH when building PyQt5. Patch1: disable-rpaths.diff # PATCH-FIX-UPSTREAM Patch2: update-timeline.patch BuildRequires: %{python_module devel} -BuildRequires: %{python_module sip-devel >= 4.19.11} +BuildRequires: %{python_module sip-devel >= 4.19.14} BuildRequires: dbus-1-devel BuildRequires: dbus-1-python-devel BuildRequires: dbus-1-python3-devel ++++++ PyQt5_gpl-5.12.1.tar.gz -> PyQt5_gpl-5.12.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt5_gpl-5.12.1/ChangeLog new/PyQt5_gpl-5.12.2/ChangeLog --- old/PyQt5_gpl-5.12.1/ChangeLog 2019-03-19 15:42:34.000000000 +0100 +++ new/PyQt5_gpl-5.12.2/ChangeLog 2019-05-06 11:03:23.000000000 +0200 @@ -1,5 +1,64 @@ +2019-05-06 Phil Thompson <p...@riverbankcomputing.com> + + * NEWS: + Released as v5.12.2. + [37e48229d59a] [5.12.2] <5.12-maint> + + * NEWS: + Updated the NEWS file. + [d5e5edec0d1d] <5.12-maint> + +2019-05-02 Phil Thompson <p...@riverbankcomputing.com> + + * PyQt5.msp: + Removed the sub-class convertor code for QGraphicsVideoItem as the + assumption it is based on is too unsafe. + [350a409dc097] <5.12-maint> + + * PyQt5.msp: + Renamed the True and False members of QCborSimpleType. + [ef294140ba74] <5.12-maint> + +2019-04-19 Phil Thompson <p...@riverbankcomputing.com> + + * PyQt5.msp: + Updated for Qt v5.12.3. + [2477434943e9] <5.12-maint> + +2019-04-15 Phil Thompson <p...@riverbankcomputing.com> + + * lib/configure.py: + Check that sip5-module ran successfully. + [1db5050c67fe] <5.12-maint> + +2019-04-14 Phil Thompson <p...@riverbankcomputing.com> + + * config-tests/cfgtest_QtCore.cpp, lib/configure.py: + Use sip v5 if it is installed. + [604795867c85] <5.12-maint> + + * PyQt5.msp: + Added QOpenGLContext.getProcAddress(). + [4cdfeee895e1] <5.12-maint> + +2019-04-02 Phil Thompson <p...@riverbankcomputing.com> + + * rb-product: + Added the 'RequiresDist' field to the product file. + [273e02f87c28] <5.12-maint> + +2019-04-01 Phil Thompson <p...@riverbankcomputing.com> + + * qpy/pylupdate/fetchtr.cpp: + Added support for Python fstrings to pylupdate. + [1000b6b9b7a8] <5.12-maint> + 2019-03-19 Phil Thompson <p...@riverbankcomputing.com> + * .hgtags: + Added tag 5.12.1 for changeset 19c22cf8059b + [33d51713a566] <5.12-maint> + * NEWS: Released as v5.12.1. [19c22cf8059b] [5.12.1] <5.12-maint> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt5_gpl-5.12.1/NEWS new/PyQt5_gpl-5.12.2/NEWS --- old/PyQt5_gpl-5.12.1/NEWS 2019-03-19 15:26:10.000000000 +0100 +++ new/PyQt5_gpl-5.12.2/NEWS 2019-05-06 10:48:53.000000000 +0200 @@ -1,3 +1,8 @@ +v5.12.2 6th May 2019 + - Added support for Qt v5.12.3. + - Added QOpenGLContext.getProcAddress(). + - Added support for Python fstrings to pylupdate. + v5.12.1 19th March 2019 - Added support for Qt v5.12.2. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt5_gpl-5.12.1/config-tests/cfgtest_QtCore.cpp new/PyQt5_gpl-5.12.2/config-tests/cfgtest_QtCore.cpp --- old/PyQt5_gpl-5.12.1/config-tests/cfgtest_QtCore.cpp 2019-03-19 15:26:09.000000000 +0100 +++ new/PyQt5_gpl-5.12.2/config-tests/cfgtest_QtCore.cpp 2019-05-06 10:48:53.000000000 +0200 @@ -1,5 +1,3 @@ -#include <sip.h> - #include <QCoreApplication> #include <QFile> #include <QLibraryInfo> @@ -16,10 +14,6 @@ QTextStream out(&outf); - // This allows the version of sip.h to be checked against the code - // generator. - out << SIP_VERSION_STR << '\n'; - // This is not a feature and needs to be handled separately. #if defined(QT_SHARED) || defined(QT_DLL) out << "shared\n"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt5_gpl-5.12.1/configure.py new/PyQt5_gpl-5.12.2/configure.py --- old/PyQt5_gpl-5.12.1/configure.py 2019-03-19 15:42:34.000000000 +0100 +++ new/PyQt5_gpl-5.12.2/configure.py 2019-05-06 11:03:23.000000000 +0200 @@ -28,7 +28,7 @@ # Initialise the constants. -PYQT_VERSION_STR = "5.12.1" +PYQT_VERSION_STR = "5.12.2" SIP_MIN_VERSION = '4.19.14' @@ -541,8 +541,7 @@ self.qt_shared = False self.qt_version = 0 self.sip = self._find_exe('sip5', 'sip') - self.sip_h_version = None - self.sip_inc_dir = self.py_venv_inc_dir + self.sip_inc_dir = None self.static = False self.sysroot = '' self.vend_enabled = False @@ -622,8 +621,6 @@ self.pyqt_sip_dir) self.pyuic_interpreter = parser.get(section, 'pyuic_interpreter', self.pyuic_interpreter) - - self.sip_inc_dir = self.py_venv_inc_dir def from_introspection(self, verbose, debug): """ Initialise the configuration by introspecting the system. """ @@ -702,17 +699,14 @@ inform("Determining the details of your Qt installation...") # Compile and run the QtCore test program. - test = compile_test_program(self, verbose, 'QtCore', debug=debug, - uses_sip_h=True) + test = compile_test_program(self, verbose, 'QtCore', debug=debug) if test is None: error("Failed to determine the detail of your Qt installation. Try again using the --verbose flag to see more detail about the problem.") lines = run_test_program('QtCore', test, verbose) - self.sip_h_version = lines[0] - - self.qt_shared = (lines[1] == 'shared') - self.pyqt_disabled_features = lines[2:-1] + self.qt_shared = (lines[0] == 'shared') + self.pyqt_disabled_features = lines[1:-1] if self.pyqt_disabled_features: inform("Disabled QtCore features: %s" % ', '.join( @@ -2324,7 +2318,7 @@ target_config.pyqt_modules.append(mname) -def compile_test_program(target_config, verbose, mname, source=None, debug=None, uses_sip_h=False): +def compile_test_program(target_config, verbose, mname, source=None, debug=None): """ Compile the source of a Qt program and return the name of the executable or None if it couldn't be created. target_config is the target configuration. verbose is set if the output is to be displayed. mname is @@ -2332,7 +2326,7 @@ program. If it is None then the source is expected to be found in the config-tests directory. debug is set if debug, rather than release, mode is to be used. If it is None then the mode is taken from the target - configuration. uses_sip_h is set if the test program uses sip.h. + configuration. """ metadata = MODULE_METADATA[mname] @@ -2356,9 +2350,6 @@ pro_add_qt_dependencies(target_config, metadata, pro_lines, debug) pro_lines.append('TARGET = %s' % name) - if uses_sip_h: - target_config.add_sip_h_directives(pro_lines) - pro_lines.append('SOURCES = %s' % qmake_quote(name_source)) f = open_for_writing(name_pro) @@ -2904,7 +2895,7 @@ error("PyQt5 requires Python v2.6 or later.") -def check_sip(target_config): +def check_sip(target_config, verbose): """ Check that the version of sip is good enough and return its version. target_config is the target configuration. """ @@ -2924,7 +2915,13 @@ pipe.close() - if '.dev' not in version_str and 'snapshot' not in version_str: + if '.dev' in version_str or 'snapshot' in version_str: + # We only need to distinguish between sip v4 and sip v5. + if version_str.startswith('5.') or version_str.startswith('4.20.'): + version = 0x050000 + else: + version = 0x040000 + else: version = version_from_string(version_str) if version is None: error( @@ -2937,6 +2934,27 @@ "This version of PyQt5 requires sip %s or later." % SIP_MIN_VERSION) + if version >= 0x050000: + # Install the sip.h file for the private sip module. + if target_config.sip_inc_dir is None: + target_config.sip_inc_dir = os.path.join( + os.path.abspath(os.getcwd()), 'include') + + inform("Installing sip.h in %s..." % target_config.sip_inc_dir) + + os.makedirs(target_config.sip_inc_dir, exist_ok=True) + run_command( + 'sip5-module --include-dir %s PyQt5.sip' % target_config.sip_inc_dir, + verbose) + + if not os.access(os.path.join(target_config.sip_inc_dir, 'sip.h'), os.F_OK): + error( + "sip5-module failed to install sip.h int %s." % + target_config.sip_inc_dir) + else: + if target_config.sip_inc_dir is None: + target_config.sip_inc_dir = target_config.py_venv_inc_dir + return version_str @@ -3022,14 +3040,7 @@ check_python(target_config) # Check SIP is what we need. - sip_version = check_sip(target_config) - - if target_config.sip_h_version is not None: - if target_config.sip_h_version != sip_version: - error("%s has version %s but %s has version %s." % ( - os.path.join(target_config.sip_inc_dir, 'sip.h'), - target_config.sip_h_version, target_config.sip, - sip_version)) + sip_version = check_sip(target_config, opts.verbose) # Check Qt is what we need. check_qt(target_config) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt5_gpl-5.12.1/qpy/pylupdate/fetchtr.cpp new/PyQt5_gpl-5.12.2/qpy/pylupdate/fetchtr.cpp --- old/PyQt5_gpl-5.12.1/qpy/pylupdate/fetchtr.cpp 2019-03-19 15:42:46.000000000 +0100 +++ new/PyQt5_gpl-5.12.2/qpy/pylupdate/fetchtr.cpp 2019-05-06 11:03:33.000000000 +0200 @@ -262,6 +262,7 @@ if ( strcmp(yyIdent + 1, "lass") == 0 ) return Tok_class; break; + case 'f': /* * QTranslator::findMessage() has the same parameters as @@ -269,7 +270,16 @@ */ if ( strcmp(yyIdent + 1, "indMessage") == 0 ) return Tok_translate; + + /* Drop through. */ + + case 'F': + if (yyIdent[1] == '\0') + might_be_str = true; + else if ((yyIdent[1] == 'r' || yyIdent[1] == 'R') && yyIdent[2] == '\0') + might_be_str = true; break; + case 'r': if ( strcmp(yyIdent + 1, "eturn") == 0 ) return Tok_return; @@ -279,16 +289,26 @@ case 'R': if (yyIdent[1] == '\0') might_be_str = true; + else if ((yyIdent[1] == 'f' || yyIdent[1] == 'F') && yyIdent[2] == '\0') + might_be_str = true; + else if ((yyIdent[1] == 'b' || yyIdent[1] == 'B') && yyIdent[2] == '\0') + might_be_str = true; break; + case 'b': case 'B': - case 'u': - case 'U': if (yyIdent[1] == '\0') might_be_str = true; else if ((yyIdent[1] == 'r' || yyIdent[1] == 'R') && yyIdent[2] == '\0') might_be_str = true; break; + + case 'u': + case 'U': + if (yyIdent[1] == '\0') + might_be_str = true; + break; + case 't': if ( strcmp(yyIdent + 1, "r") == 0 ) { yyParsingUtf8 = false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt5_gpl-5.12.1/sip/QtCore/QtCoremod.sip new/PyQt5_gpl-5.12.2/sip/QtCore/QtCoremod.sip --- old/PyQt5_gpl-5.12.1/sip/QtCore/QtCoremod.sip 2019-03-19 15:42:47.000000000 +0100 +++ new/PyQt5_gpl-5.12.2/sip/QtCore/QtCoremod.sip 2019-05-06 11:03:34.000000000 +0200 @@ -22,7 +22,7 @@ %Module(name=PyQt5.QtCore, call_super_init=True, default_VirtualErrorHandler=PyQt5, keyword_arguments="Optional", use_limited_api=True) -%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_6_4 Qt_5_6_5 Qt_5_6_6 Qt_5_6_7 Qt_5_6_8 Qt_5_6_9 Qt_5_7_0 Qt_5_7_1 Qt_5_8_0 Qt_5_8_1 Qt_5_9_0 Qt_5_9_1 Qt_5_9_2 Qt_5_9_3 Qt_5_9_4 Qt_5_9_5 Qt_5_9_6 Qt_5_9_7 Qt_5_9_8 Qt_5_9_9 Qt_5_10_0 Qt_5_10_1 Qt_5_11_0 Qt_5_11_1 Qt_5_11_2 Qt_5_11_3 Qt_5_12_0 Qt_5_12_1 Qt_5_12_2} +%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_6_4 Qt_5_6_5 Qt_5_6_6 Qt_5_6_7 Qt_5_6_8 Qt_5_6_9 Qt_5_7_0 Qt_5_7_1 Qt_5_8_0 Qt_5_8_1 Qt_5_9_0 Qt_5_9_1 Qt_5_9_2 Qt_5_9_3 Qt_5_9_4 Qt_5_9_5 Qt_5_9_6 Qt_5_9_7 Qt_5_9_8 Qt_5_9_9 Qt_5_10_0 Qt_5_10_1 Qt_5_11_0 Qt_5_11_1 Qt_5_11_2 Qt_5_11_3 Qt_5_12_0 Qt_5_12_1 Qt_5_12_2 Qt_5_12_3} %Platforms {WS_X11 WS_WIN WS_MACX} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt5_gpl-5.12.1/sip/QtCore/qcborcommon.sip new/PyQt5_gpl-5.12.2/sip/QtCore/qcborcommon.sip --- old/PyQt5_gpl-5.12.1/sip/QtCore/qcborcommon.sip 2019-03-19 15:42:47.000000000 +0100 +++ new/PyQt5_gpl-5.12.2/sip/QtCore/qcborcommon.sip 2019-05-06 11:03:34.000000000 +0200 @@ -30,8 +30,8 @@ enum class QCborSimpleType { - False, - True, + False /PyName=False_/, + True /PyName=True_/, Null, Undefined, }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt5_gpl-5.12.1/sip/QtCore/qglobal.sip new/PyQt5_gpl-5.12.2/sip/QtCore/qglobal.sip --- old/PyQt5_gpl-5.12.1/sip/QtCore/qglobal.sip 2019-03-19 15:42:47.000000000 +0100 +++ new/PyQt5_gpl-5.12.2/sip/QtCore/qglobal.sip 2019-05-06 11:03:35.000000000 +0200 @@ -29,8 +29,8 @@ const char *PYQT_VERSION_STR; %ModuleCode -static int PYQT_VERSION = 0x050c01; -static const char *PYQT_VERSION_STR = "5.12.1"; +static int PYQT_VERSION = 0x050c02; +static const char *PYQT_VERSION_STR = "5.12.2"; %End const int QT_VERSION; const char *QT_VERSION_STR; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt5_gpl-5.12.1/sip/QtGui/qopenglcontext.sip new/PyQt5_gpl-5.12.2/sip/QtGui/qopenglcontext.sip --- old/PyQt5_gpl-5.12.1/sip/QtGui/qopenglcontext.sip 2019-03-19 15:42:47.000000000 +0100 +++ new/PyQt5_gpl-5.12.2/sip/QtGui/qopenglcontext.sip 2019-05-06 11:03:34.000000000 +0200 @@ -62,6 +62,7 @@ bool makeCurrent(QSurface *surface); void doneCurrent(); void swapBuffers(QSurface *surface); + QFunctionPointer getProcAddress(const QByteArray &procName) const; QSurface *surface() const; static QOpenGLContext *currentContext(); static bool areSharing(QOpenGLContext *first, QOpenGLContext *second); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/PyQt5_gpl-5.12.1/sip/QtMultimediaWidgets/qgraphicsvideoitem.sip new/PyQt5_gpl-5.12.2/sip/QtMultimediaWidgets/qgraphicsvideoitem.sip --- old/PyQt5_gpl-5.12.1/sip/QtMultimediaWidgets/qgraphicsvideoitem.sip 2019-03-19 15:42:47.000000000 +0100 +++ new/PyQt5_gpl-5.12.2/sip/QtMultimediaWidgets/qgraphicsvideoitem.sip 2019-05-06 11:03:35.000000000 +0200 @@ -26,21 +26,6 @@ #include <qgraphicsvideoitem.h> %End -%ConvertToSubClassCode - // QGraphicsVideoItem doesn't reimplement type() so we hope nothing collides - // with the default. - if (sipCpp->type() == QGraphicsItem::UserType) - { - // Switch to the QObject convertor. - *sipCppRet = static_cast<QGraphicsVideoItem *>(sipCpp); - sipType = sipType_QObject; - } - else - { - sipType = 0; - } -%End - public: %If (Qt_5_6_1 -) explicit QGraphicsVideoItem(QGraphicsItem *parent /TransferThis/ = 0); ++++++ update-timeline.patch ++++++ --- /var/tmp/diff_new_pack.UGktw0/_old 2019-06-12 13:07:10.349161552 +0200 +++ /var/tmp/diff_new_pack.UGktw0/_new 2019-06-12 13:07:10.349161552 +0200 @@ -5,15 +5,15 @@ to be mentioned manually? diff --git a/sip/QtCore/QtCoremod.sip b/sip/QtCore/QtCoremod.sip -index 62dead4..b5854ad 100644 +index b968f1b..4c6fe02 100644 --- a/sip/QtCore/QtCoremod.sip +++ b/sip/QtCore/QtCoremod.sip @@ -22,7 +22,7 @@ %Module(name=PyQt5.QtCore, call_super_init=True, default_VirtualErrorHandler=PyQt5, keyword_arguments="Optional", use_limited_api=True) --%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_6_4 Qt_5_6_5 Qt_5_6_6 Qt_5_6_7 Qt_5_6_8 Qt_5_6_9 Qt_5_7_0 Qt_5_7_1 Qt_5_8_0 Qt_5_8_1 Qt_5_9_0 Qt_5_9_1 Qt_5_9_2 Qt_5_9_3 Qt_5_9_4 Qt_5_9_5 Qt_5_9_6 Qt_5_9_7 Qt_5_9_8 Qt_5_9_9 Qt_5_10_0 Qt_5_10_1 Qt_5_11_0 Qt_5_11_1 Qt_5_11_2 Qt_5_11_3 Qt_5_12_0 Qt_5_12_1 Qt_5_12_2} -+%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_6_4 Qt_5_6_5 Qt_5_6_6 Qt_5_6_7 Qt_5_6_8 Qt_5_6_9 Qt_5_7_0 Qt_5_7_1 Qt_5_8_0 Qt_5_8_1 Qt_5_9_0 Qt_5_9_1 Qt_5_9_2 Qt_5_9_3 Qt_5_9_4 Qt_5_9_5 Qt_5_9_6 Qt_5_9_7 Qt_5_9_8 Qt_5_9_9 Qt_5_10_0 Qt_5_10_1 Qt_5_11_0 Qt_5_11_1 Qt_5_11_2 Qt_5_11_3 Qt_5_12_0 Qt_5_12_1 Qt_5_12_2 Qt_5_13_0} +-%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_6_4 Qt_5_6_5 Qt_5_6_6 Qt_5_6_7 Qt_5_6_8 Qt_5_6_9 Qt_5_7_0 Qt_5_7_1 Qt_5_8_0 Qt_5_8_1 Qt_5_9_0 Qt_5_9_1 Qt_5_9_2 Qt_5_9_3 Qt_5_9_4 Qt_5_9_5 Qt_5_9_6 Qt_5_9_7 Qt_5_9_8 Qt_5_9_9 Qt_5_10_0 Qt_5_10_1 Qt_5_11_0 Qt_5_11_1 Qt_5_11_2 Qt_5_11_3 Qt_5_12_0 Qt_5_12_1 Qt_5_12_2 Qt_5_12_3} ++%Timeline {Qt_5_0_0 Qt_5_0_1 Qt_5_0_2 Qt_5_1_0 Qt_5_1_1 Qt_5_2_0 Qt_5_2_1 Qt_5_3_0 Qt_5_3_1 Qt_5_3_2 Qt_5_4_0 Qt_5_4_1 Qt_5_4_2 Qt_5_5_0 Qt_5_5_1 Qt_5_6_0 Qt_5_6_1 Qt_5_6_2 Qt_5_6_3 Qt_5_6_4 Qt_5_6_5 Qt_5_6_6 Qt_5_6_7 Qt_5_6_8 Qt_5_6_9 Qt_5_7_0 Qt_5_7_1 Qt_5_8_0 Qt_5_8_1 Qt_5_9_0 Qt_5_9_1 Qt_5_9_2 Qt_5_9_3 Qt_5_9_4 Qt_5_9_5 Qt_5_9_6 Qt_5_9_7 Qt_5_9_8 Qt_5_9_9 Qt_5_10_0 Qt_5_10_1 Qt_5_11_0 Qt_5_11_1 Qt_5_11_2 Qt_5_11_3 Qt_5_12_0 Qt_5_12_1 Qt_5_12_2 Qt_5_12_3 Qt_5_13_0 Qt_5_13_1 Qt_5_13_2} %Platforms {WS_X11 WS_WIN WS_MACX}