Ticket #46238: patch-qt4-qt5-concurrence.diff
File patch-qt4-qt5-concurrence.diff, 21.2 KB (added by pixilla (Bradley Giesbrecht), 10 years ago) |
---|
-
_resources/port1.0/group/qt4-1.0.tcl
57 57 58 58 # standard install directory 59 59 global qt_dir 60 set qt_dir ${prefix} 60 set qt_dir ${prefix}/libexec/${qt_name} 61 61 62 62 # standard Qt documents directory 63 63 global qt_docs_dir 64 set qt_docs_dir ${ qt_dir}/share/doc/${qt_name}64 set qt_docs_dir ${prefix}/share/doc/${qt_name} 65 65 66 66 # standard Qt plugins directory 67 67 global qt_plugins_dir 68 set qt_plugins_dir ${ qt_dir}/share/${qt_name}/plugins68 set qt_plugins_dir ${prefix}/share/${qt_name}/plugins 69 69 70 70 # standard Qt mkspecs directory 71 71 global qt_mkspecs_dir 72 set qt_mkspecs_dir ${ qt_dir}/share/${qt_name}/mkspecs72 set qt_mkspecs_dir ${prefix}/share/${qt_name}/mkspecs 73 73 74 74 # standard Qt imports directory 75 75 global qt_imports_dir 76 set qt_imports_dir ${ qt_dir}/share/${qt_name}/imports76 set qt_imports_dir ${prefix}/share/${qt_name}/imports 77 77 78 78 # standard Qt includes directory 79 79 global qt_includes_dir 80 set qt_includes_dir ${ qt_dir}/include80 set qt_includes_dir ${prefix}/include/${qt_name} 81 81 82 82 # standard Qt libraries directory 83 83 global qt_libs_dir … … 97 97 98 98 # standard Qt data directory 99 99 global qt_data_dir 100 set qt_data_dir ${ qt_dir}/share/${qt_name}100 set qt_data_dir ${prefix}/share/${qt_name} 101 101 102 102 # standard Qt translations directory 103 103 global qt_translations_dir 104 set qt_translations_dir ${ qt_dir}/share/${qt_name}/translations104 set qt_translations_dir ${prefix}/share/${qt_name}/translations 105 105 106 106 # standard Qt sysconf directory 107 107 global qt_sysconf_dir 108 set qt_sysconf_dir ${ qt_dir}/etc/${qt_name}108 set qt_sysconf_dir ${prefix}/etc/${qt_name} 109 109 110 110 # standard Qt examples directory 111 111 global qt_examples_dir 112 set qt_examples_dir ${ qt_dir}/share/${qt_name}/examples112 set qt_examples_dir ${prefix}/share/${qt_name}/examples 113 113 114 114 # standard Qt demos directory 115 115 global qt_demos_dir 116 set qt_demos_dir ${ qt_dir}/share/${qt_name}/demos116 set qt_demos_dir ${prefix}/share/${qt_name}/demos 117 117 118 118 # standard CMake module directory for Qt-related files 119 119 global qt_cmake_module_dir 120 set qt_cmake_module_dir ${qt_ dir}/share/cmake/Modules120 set qt_cmake_module_dir ${qt_libs_dir}/cmake 121 121 122 122 # standard qmake command location 123 123 global qt_qmake_cmd … … 141 141 142 142 # standard PKGCONFIG path 143 143 global qt_pkg_config_dir 144 set qt_pkg_config_dir ${ qt_libs_dir}/pkgconfig144 set qt_pkg_config_dir ${prefix}/lib/pkgconfig 145 145 146 146 # standard cmake info for Qt4 147 147 global qt_cmake_defines -
aqua/qt4-mac/Portfile
11 11 PortGroup compiler_blacklist_versions 1.0 12 12 13 13 name qt4-mac 14 # qt4-mac-devel is "replaced_by" this port, 15 # so this port cannot conflict with it. 16 #conflicts qt3 qt3-mac qt4-mac-devel 17 conflicts qt3 qt3-mac qt5-mac 18 version 4.8.6 14 version 4.8.6 15 revision 1 19 16 set branch [join [lrange [split ${version} .] 0 1] .] 20 17 21 18 categories aqua … … 27 24 description Qt Tool Kit 28 25 long_description Qt Tool Kit: A cross-platform framework \ 29 26 (headers, data, and libraries) for writing \ 30 cross-platform GUI-based applications. 27 cross-platform GUI-based applications. \ 28 Installs to ${qt_dir} 31 29 32 30 distname qt-everywhere-opensource-src-${version} 33 31 … … 245 243 patchfiles-append \ 246 244 patch-10.10.diff 247 245 246 # (25) avoid leaving zombies when starting an inexisting executable through QProcess 247 patchfiles-append \ 248 qprocess-nozombies.patch 249 248 250 # error out if trying to build on a new OSX version (> 10.10). 249 251 250 252 platform darwin { … … 504 506 -no-pch \ 505 507 -framework \ 506 508 -no-phonon \ 507 -no-phonon-backend 509 -no-phonon-backend \ 510 -fontconfig -system-freetype 508 511 509 512 # Stop configure script from searching for SQL Drivers 510 513 # not available from MacPorts. … … 640 643 641 644 destroot.post_args 642 645 646 pre-destroot { 647 # this isn't really nice if the user has 2nd thoughts and wants to install those html files after all 648 # (and knows how to get port to redo an install without cleaning and rebuilding everything). 649 # Let's hope that happens rarely enough to prefer speeding up the destroot step for the others 650 if {![variant_isset htmldocs]} { 651 if {[file exists ${worksrcpath}/doc/html/images]} { 652 ui_msg "cleaning out ${worksrcpath}/doc/html per your request" 653 delete file ${worksrcpath}/doc/html/images ${worksrcpath}/doc/html/scripts ${worksrcpath}/doc/html/style 654 eval file delete [glob ${worksrcpath}/doc/html/*.html] 655 eval file delete [glob ${worksrcpath}/doc/html/qt.*] 656 } 657 } 658 } 659 643 660 post-destroot { 644 661 645 662 set destroot_qt ${destroot}${qt_dir} … … 667 684 668 685 # use ${prefix} correctly 669 686 670 reinplace "s|${prefix}/|\${prefix}/|g" ${fixfile} 687 # RJVB: 688 # don't replace ${prefix} (e.g. /opt/local) with \${prefix} 689 # unless ${qt_dir} == ${prefix} (but I don't see the point at all...) 690 if {${prefix} eq ${qt_dir}} { 691 reinplace "s|${prefix}/|\${prefix}/|g" ${fixfile} 692 } 671 693 672 694 # fix libdir 673 695 … … 701 723 702 724 file delete -force ${destroot}${qt_pkg_config_dir} 703 725 xinstall -m 755 -d ${destroot}${qt_libs_dir} 726 # move ${destroot}${qt_frameworks_dir}/pkgconfig \ 727 # ${destroot}${qt_libs_dir} 728 # RJVB: ${destroot}${qt_libs_dir} is NOT always equal to ${qt_pkg_config_dir} !! 704 729 move ${destroot}${qt_frameworks_dir}/pkgconfig \ 705 ${destroot}${qt_libs_dir} 730 ${destroot}${qt_pkg_config_dir} 731 ln -s ${qt_pkg_config_dir} ${destroot}${qt_libs_dir}/pkgconfig 706 732 707 733 # move .la files from ${qt_frameworks_dir} to ${qt_libs_dir} 708 734 … … 745 771 746 772 # link includes and libraries for each actual installed framework 747 773 774 # make sure that qt_includes_dir exist; apparently it will not have been created at this point, 775 # despite the -headerdir ${qt_includes_dir} argument to configure. Because of doing a framework build? 776 exec mkdir -p ${destroot}${qt_includes_dir} 748 777 foreach fixfile [exec find ${destroot}${qt_frameworks_dir} \ 749 778 -name "*.framework" | \ 750 779 sed -e "s@${destroot}@@g"] { … … 972 1001 973 1002 ln -s ${qt_frameworks_dir}/QtGui.framework/Resources \ 974 1003 ${destroot}${qt_libs_dir} 975 1004 ln -s ${qt_qmake_cmd} ${destroot}/${prefix}/bin/qmake4.8 1005 ln -s ${qt_moc_cmd} ${destroot}/${prefix}/bin/moc4.8 1006 ln -s ${qt_uic_cmd} ${destroot}/${prefix}/bin/uic4.8 1007 ln -s ${qt_lrelease_cmd} ${destroot}/${prefix}/bin/lrelease4.8 1008 if {[variant_isset KDE]} { 1009 # expose KDE4 styles to Qt4: 1010 ln -s ${prefix}/lib/kde4/plugins/styles ${destroot}${qt_plugins_dir}/ 1011 } 1012 if {[variant_isset noexceptions ]} { 1013 # building with -no-exceptions will add a section to QtCore/qconfig.h that has to be removed 1014 # given that we did NOT build QtCore WITHOUT exceptions... 1015 exec patch -d ${destroot}${qt_frameworks_dir} -Np0 -i ${filespath}/qconfig-remove-EXCEPTIONS.diff 1016 } 976 1017 } 977 1018 978 1019 variant odbc description {Enable iODBC SQL Driver} { … … 1005 1046 configure.args-append -release -no-declarative-debug 1006 1047 } 1007 1048 1008 variant openvg description {Build with support for OpenVG} {1049 variant openvg description {Build with *experimental* support for OpenVG} { 1009 1050 1010 1051 depends_lib-append port:mesa 1011 1052 … … 1058 1099 1059 1100 } 1060 1101 1102 variant htmldocs description {Install HTML documentation (>200Mb)} {} 1103 1061 1104 post-activate { 1062 1105 ui_msg "NOTE: Qt database plugins for mysql55, postgresql91, and sqlite2 are NOT installed by this port\; they are installed by qt4-mac-*-plugin instead." 1063 1106 } 1064 1107 1108 variant KDE description {Include RJVB's patches for use with KDE} { 1109 patchfiles-append qt4-correct-systraymenu-iconhandling.patch \ 1110 qt4-deactivate-menurole-heuristics.patch \ 1111 prevent_addTitleRelated_crash.patch \ 1112 debug-negative-qtimerint.patch \ 1113 silence-qfilesystemwatcher.patch 1114 } 1115 1116 variant noexceptions description {build without using exceptions internally} { 1117 # (26) don't build with exceptions, which gives a completely ABI-compatible build 1118 patchfiles-append disable-exceptions.patch 1119 configure.args-append -no-exceptions 1120 } 1121 1065 1122 livecheck.type regex 1066 1123 livecheck.url http://download.qt-project.org/official_releases/qt/${branch}/ 1067 1124 livecheck.regex >(\[0-9.\]+)/< -
aqua/qt4-mac/files/debug-negative-qtimerint.patch
1 --- src/corelib/kernel/orig.qobject.cpp 2014-04-10 20:37:11.000000000 +0200 2 +++ src/corelib/kernel/qobject.cpp 2014-12-09 00:43:41.000000000 +0100 3 @@ -1597,12 +1597,83 @@ 4 \sa timerEvent(), killTimer(), QTimer::singleShot() 5 */ 6 7 +#include <unistd.h> 8 +#include <execinfo.h> 9 +#include <cxxabi.h> 10 + 11 +static QString maybeDemangledName(char *name) 12 +{ 13 + const int len = strlen(name); 14 + QByteArray in = QByteArray::fromRawData(name, len); 15 +#ifdef Q_OS_MAC 16 + const int mangledNameStart = in.indexOf(" _"), startOffset = 1; 17 +#elif defined(__FreeBSD__) 18 + const int mangledNameStart = in.indexOf(" <_"), startOffset = 2; 19 +#elif defined(__sun) && defined(__SVR4) 20 + const int mangledNameStart = in.indexOf("'"), startOffset = 0; 21 +#else 22 + const int mangledNameStart = in.indexOf("(_"), startOffset = 1; 23 +#endif 24 + if (mangledNameStart >= 0) { 25 + int mangledNameEnd = in.indexOf('+', mangledNameStart + 2); 26 + // check for and suppress trailing whitespace: 27 + if (mangledNameEnd > 1 && isspace(name[mangledNameEnd-1])) { 28 + mangledNameEnd -= 1; 29 + while (mangledNameEnd > 1 && isspace(name[mangledNameEnd-1])) { 30 + --mangledNameEnd; 31 + } 32 + } 33 + if (mangledNameEnd >= 0) { 34 + int status; 35 + // if we forget about this line and the one that undoes its effect we don't change the 36 + // internal data of the QByteArray::fromRawData() ;) 37 + const char endChar = name[mangledNameEnd]; 38 + name[mangledNameEnd] = 0; 39 + char *demangled = abi::__cxa_demangle(name + mangledNameStart + startOffset, 0, 0, &status); 40 + name[mangledNameEnd] = endChar; 41 + if (demangled) { 42 + QString ret = QString::fromLatin1(name, mangledNameStart + startOffset) + 43 + QString::fromLatin1(demangled) + 44 + QString::fromLatin1(name + mangledNameEnd, len - mangledNameEnd); 45 + free(demangled); 46 + return ret; 47 + } 48 + } 49 + } 50 + return QString::fromLatin1(name); 51 +} 52 + 53 +QString kRealBacktrace(int levels) 54 +{ 55 + QString s; 56 + void* trace[256]; 57 + int n = backtrace(trace, 256); 58 + if (!n) 59 + return s; 60 + char** strings = backtrace_symbols (trace, n); 61 + 62 + if ( levels != -1 ) 63 + n = qMin( n, levels ); 64 + s = QLatin1String("[\n"); 65 + 66 + for (int i = 0; i < n; ++i) 67 + s += QString::number(i) + QLatin1String(": ") + 68 + maybeDemangledName(strings[i]) + QLatin1Char('\n'); 69 + s += QLatin1String("]\n"); 70 + if (strings) 71 + free (strings); 72 + return s; 73 +} 74 + 75 + 76 int QObject::startTimer(int interval) 77 { 78 Q_D(QObject); 79 80 if (interval < 0) { 81 - qWarning("QObject::startTimer: QTimer cannot have a negative interval"); 82 + //qWarning("QObject::startTimer: QTimer cannot have a negative interval"); 83 + qWarning() << "QObject::startTimer: QTimer" << this << "cannot have a negative interval" << interval << "pid=" << getpid() 84 + << kRealBacktrace(-1); 85 return 0; 86 } 87 -
aqua/qt4-mac/files/disable-exceptions.patch
1 --- orig.configure 2014-12-09 00:30:18.000000000 +0100 2 +++ configure 2014-12-11 21:38:33.000000000 +0100 3 @@ -7881,15 +7881,15 @@ 4 QT_CONFIG="$QT_CONFIG concurrent" 5 fi 6 7 -if [ "$CFG_XMLPATTERNS" = "yes" -a "$CFG_EXCEPTIONS" = "no" ]; then 8 - echo "QtXmlPatterns was requested, but it can't be built due to exceptions being disabled." 9 - exit 1 10 -fi 11 -if [ "$CFG_XMLPATTERNS" = "auto" -a "$CFG_EXCEPTIONS" != "no" ]; then 12 +#if [ "$CFG_XMLPATTERNS" = "yes" -a "$CFG_EXCEPTIONS" = "no" ]; then 13 +# echo "QtXmlPatterns was requested, but it can't be built due to exceptions being disabled." 14 +# exit 1 15 +#fi 16 +#if [ "$CFG_XMLPATTERNS" = "auto" -a "$CFG_EXCEPTIONS" != "no" ]; then 17 CFG_XMLPATTERNS="$canBuildQtXmlPatterns" 18 -elif [ "$CFG_EXCEPTIONS" = "no" ]; then 19 - CFG_XMLPATTERNS="no" 20 -fi 21 +#elif [ "$CFG_EXCEPTIONS" = "no" ]; then 22 +# CFG_XMLPATTERNS="no" 23 +#fi 24 if [ "$CFG_XMLPATTERNS" = "yes" ]; then 25 QT_CONFIG="$QT_CONFIG xmlpatterns" 26 else 27 --- src/xmlpatterns/utils/orig.qpatternistlocale_p.h 2014-04-10 20:37:12.000000000 +0200 28 +++ src/xmlpatterns/utils/qpatternistlocale_p.h 2014-12-11 23:58:30.000000000 +0100 29 @@ -274,7 +274,8 @@ 30 #endif 31 32 #ifdef QT_NO_EXCEPTIONS 33 -#error "Patternist uses exceptions and cannot be built without." 34 +// #error "Patternist uses exceptions and cannot be built without." 35 +#warning "Patternist uses exceptions and will ignore the fact QtCore is built without" 36 #endif 37 38 QT_END_NAMESPACE 39 --- src/xmlpatterns/orig.xmlpatterns.pro 2014-12-16 13:58:27.000000000 +0100 40 +++ src/xmlpatterns/xmlpatterns.pro 2014-12-16 13:59:46.000000000 +0100 41 @@ -2,8 +2,13 @@ 42 QPRO_PWD = $$PWD 43 QT = core \ 44 network 45 +DEFINES -= QT_NO_EXCEPTIONS 46 DEFINES += QT_BUILD_XMLPATTERNS_LIB \ 47 - QT_NO_USING_NAMESPACE 48 + QT_NO_USING_NAMESPACE QT_EXCEPTIONS 49 +QMAKE_CXXFLAGS_EXCEPTIONS_OFF -= -fno-exceptions 50 +QMAKE_CFLAGS -= -fno-exceptions 51 +QMAKE_CXXFLAGS -= -fno-exceptions 52 +QMAKE_LFLAGS -= -fno-exceptions 53 win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x61000000 54 unix|win32-g++*:QMAKE_PKGCONFIG_REQUIRES = QtCore \ 55 QtNetwork 56 --- src/corelib/orig.corelib.pro 2014-12-16 13:46:18.000000000 +0100 57 +++ src/corelib/corelib.pro 2014-12-16 13:47:05.000000000 +0100 58 @@ -1,7 +1,12 @@ 59 TARGET = QtCore 60 QPRO_PWD = $$PWD 61 QT = 62 -DEFINES += QT_BUILD_CORE_LIB QT_NO_USING_NAMESPACE 63 +DEFINES -= QT_NO_EXCEPTIONS 64 +DEFINES += QT_BUILD_CORE_LIB QT_NO_USING_NAMESPACE QT_EXCEPTIONS 65 +QMAKE_CXXFLAGS_EXCEPTIONS_OFF -= -fno-exceptions 66 +QMAKE_CFLAGS -= -fno-exceptions 67 +QMAKE_CXXFLAGS -= -fno-exceptions 68 +QMAKE_LFLAGS -= -fno-exceptions 69 win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x67000000 70 irix-cc*:QMAKE_CXXFLAGS += -no_prelink -ptused 71 -
aqua/qt4-mac/files/prevent_addTitleRelated_crash.patch
1 --- src/gui/kernel/orig.qwidget_mac.mm 2014-10-03 15:06:54.000000000 +0200 2 +++ src/gui/kernel/qwidget_mac.mm 2014-10-03 15:08:07.000000000 +0200 3 @@ -4619,7 +4619,7 @@ 4 5 setWSGeometry(false, oldRect); 6 7 - if (isResize && QApplicationPrivate::graphicsSystem()) 8 + if (isResize && q->parentWidget() && QApplicationPrivate::graphicsSystem()) 9 invalidateBuffer_resizeHelper(oldp, olds); 10 } 11 -
aqua/qt4-mac/files/qprocess-nozombies.patch
1 --- src/corelib/io/orig.qprocess_unix.cpp 2014-04-10 20:37:11.000000000 +0200 2 +++ src/corelib/io/qprocess_unix.cpp 2014-12-11 17:03:26.000000000 +0100 3 @@ -1296,17 +1296,18 @@ 4 processManager()->remove(q); 5 } 6 7 +//https://codereview.qt-project.org/#/c/61294/ 8 bool QProcessPrivate::waitForDeadChild() 9 { 10 Q_Q(QProcess); 11 12 // read a byte from the death pipe 13 char c; 14 - qt_safe_read(deathPipe[0], &c, 1); 15 + qint64 readcount = qt_safe_read(deathPipe[0], &c, 1); 16 17 // check if our process is dead 18 int exitStatus; 19 - if (qt_safe_waitpid(pid_t(pid), &exitStatus, WNOHANG) > 0) { 20 + if (qt_safe_waitpid(pid_t(pid), &exitStatus, readcount > 0 ? WNOHANG : 0) > 0) { 21 processManager()->remove(q); 22 crashed = !WIFEXITED(exitStatus); 23 exitCode = WEXITSTATUS(exitStatus); -
aqua/qt4-mac/files/qt4-correct-systraymenu-iconhandling.patch
1 --- src/gui/util/orig.qsystemtrayicon_mac.mm 2014-04-10 20:37:12.000000000 +0200 2 +++ src/gui/util/qsystemtrayicon_mac.mm 2014-09-15 19:48:07.000000000 +0200 3 @@ -341,7 +341,7 @@ 4 -(void)mousePressed:(NSEvent *)mouseEvent button:(Qt::MouseButton)mouseButton 5 { 6 down = YES; 7 - int clickCount = [mouseEvent clickCount]; 8 + int clickCount = [mouseEvent clickCount]; 9 [self setNeedsDisplay:YES]; 10 11 #ifndef QT_MAC_USE_COCOA 12 @@ -532,7 +532,8 @@ 13 [item setState:action->isChecked() ? NSOnState : NSOffState]; 14 [item setToolTip:(NSString*)QCFString::toCFStringRef(action->toolTip())]; 15 const QIcon icon = action->icon(); 16 - if(!icon.isNull()) { 17 + // RJVB 20140915: don't forget to check against isIconVisibleInMenu()! 18 + if(!icon.isNull() && action->isIconVisibleInMenu()) { 19 #ifndef QT_MAC_USE_COCOA 20 const short scale = GetMBarHeight(); 21 #else -
aqua/qt4-mac/files/qt4-deactivate-menurole-heuristics.patch
1 --- src/gui/widgets/orig.qmenu_mac.mm 2014-04-10 20:37:12.000000000 +0200 2 +++ src/gui/widgets/qmenu_mac.mm 2014-09-16 16:25:00.000000000 +0200 3 @@ -638,7 +638,7 @@ 4 5 static NSMenuItem *createNSMenuItem(const QString &title) 6 { 7 - NSMenuItem *item = [[NSMenuItem alloc] 8 + NSMenuItem *item = [[NSMenuItem alloc] 9 initWithTitle:qt_mac_QStringToNSString(title) 10 action:@selector(qtDispatcherToQAction:) keyEquivalent:@""]; 11 [item setTarget:nil]; 12 @@ -852,32 +852,7 @@ 13 #endif 14 break; 15 case QAction::TextHeuristicRole: { 16 - QString aboutString = QMenuBar::tr("About").toLower(); 17 - if (t.startsWith(aboutString) || t.endsWith(aboutString)) { 18 - if (t.indexOf(QRegExp(QString::fromLatin1("qt$"), Qt::CaseInsensitive)) == -1) { 19 -#ifndef QT_MAC_USE_COCOA 20 - ret = kHICommandAbout; 21 -#else 22 - ret = [loader aboutMenuItem]; 23 -#endif 24 - } else { 25 -#ifndef QT_MAC_USE_COCOA 26 - ret = kHICommandAboutQt; 27 -#else 28 - ret = [loader aboutQtMenuItem]; 29 -#endif 30 - } 31 - } else if (t.startsWith(QMenuBar::tr("Config").toLower()) 32 - || t.startsWith(QMenuBar::tr("Preference").toLower()) 33 - || t.startsWith(QMenuBar::tr("Options").toLower()) 34 - || t.startsWith(QMenuBar::tr("Setting").toLower()) 35 - || t.startsWith(QMenuBar::tr("Setup").toLower())) { 36 -#ifndef QT_MAC_USE_COCOA 37 - ret = kHICommandPreferences; 38 -#else 39 - ret = [loader preferencesMenuItem]; 40 -#endif 41 - } else if (t.startsWith(QMenuBar::tr("Quit").toLower()) 42 + if (t.startsWith(QMenuBar::tr("Quit").toLower()) 43 || t.startsWith(QMenuBar::tr("Exit").toLower())) { 44 #ifndef QT_MAC_USE_COCOA 45 ret = kHICommandQuit; -
aqua/qt4-mac/files/silence-qfilesystemwatcher.patch
1 --- src/corelib/io/orig.qfilesystemwatcher.cpp 2014-04-10 20:37:11.000000000 +0200 2 +++ src/corelib/io/qfilesystemwatcher.cpp 2014-12-11 13:33:27.000000000 +0100 3 @@ -544,9 +544,9 @@ 4 if(engine) 5 p = engine->addPaths(p, &d->files, &d->directories); 6 7 - if (!p.isEmpty()) 8 - qWarning("QFileSystemWatcher: failed to add paths: %s", 9 - qPrintable(p.join(QLatin1String(", ")))); 10 +// if (!p.isEmpty()) 11 +// qWarning("QFileSystemWatcher: failed to add paths: %s", 12 +// qPrintable(p.join(QLatin1String(", ")))); 13 } 14 15 /*!