From 5ac3c550443f8f22f74fd6ebf5578fa41414544e Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Thu, 14 Nov 2013 20:23:31 -0700 Subject: [PATCH] Add qt-4.8.5 recipe * Untested as secondary on gcc2 * Could use some subpackages like _debug/_demos/etc... (demos and examples are disabled at the moment) * Might need some fine tuning of install directories but they're generally ok. This is things like possibly moving qtconfig into the preferences directory and putting some of the bin commands that are currently in the _devel package into an apps dir. * Several of the libs and some of the data files from the main package could probably be put in the _devel package. --- dev-qt/qtcore/patches/qt-4.7.3.patch | 14261 ---------------- .../qtcore/patches/qtcore-4.8.5.git.patchset | 30 + dev-qt/qtcore/qtcore-4.7.3.recipe | 26 - dev-qt/qtcore/qtcore-4.8.5.git.recipe | 205 + dev-qt/qtcore/qtcore-4.8.x.recipe | 26 - 5 files changed, 235 insertions(+), 14313 deletions(-) delete mode 100644 dev-qt/qtcore/patches/qt-4.7.3.patch create mode 100644 dev-qt/qtcore/patches/qtcore-4.8.5.git.patchset delete mode 100644 dev-qt/qtcore/qtcore-4.7.3.recipe create mode 100644 dev-qt/qtcore/qtcore-4.8.5.git.recipe delete mode 100644 dev-qt/qtcore/qtcore-4.8.x.recipe diff --git a/dev-qt/qtcore/patches/qt-4.7.3.patch b/dev-qt/qtcore/patches/qt-4.7.3.patch deleted file mode 100644 index 74615b5ac..000000000 --- a/dev-qt/qtcore/patches/qt-4.7.3.patch +++ /dev/null @@ -1,14261 +0,0 @@ -diff -rupN qt-everywhere-opensource-src-4.7.3/configure qt-everywhere-opensource-src-4.7.3_haiku/configure ---- qt-everywhere-opensource-src-4.7.3/configure 2011-03-30 05:16:21.000262144 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/configure 2011-06-13 22:33:04.768868352 +0000 -@@ -187,6 +187,11 @@ fi - PLATFORM_X11=no - PLATFORM_MAC=no - PLATFORM_QWS=no -+PLATFORM_HAIKU=no -+ -+if [ $UNAME_SYSTEM = "Haiku" ]; then -+ PLATFORM_HAIKU=yes -+fi - - if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ] && [ -d /System/Library/Frameworks/Carbon.framework ]; then - # Qt/Mac -@@ -2742,6 +2747,9 @@ if [ -z "$PLATFORM" ]; then - QNX:*) - PLATFORM=unsupported/qnx-g++ - ;; -+ Haiku:*) -+ PLATFORM=haiku-g++ -+ ;; - *) - if [ "$OPT_HELP" != "yes" ]; then - echo -@@ -3005,6 +3013,9 @@ if [ -z "${CFG_HOST_ARCH}" ]; then - ;; - esac - ;; -+ Haiku:*:*) -+ CFG_HOST_ARCH=i386 -+ ;; - *:*:*) - if [ "$OPT_VERBOSE" = "yes" ]; then - echo " Trying '$UNAME_MACHINE'..." -@@ -3172,7 +3183,7 @@ QMAKE_CONF_COMPILER=`getQMakeConf "$XQMA - TEST_COMPILER="$CXX" - - [ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER --if [ "$XPLATFORM" != "symbian-sbsv2" ]; then -+if [ "$XPLATFORM" != "symbian-sbsv2" ] && [ "$PLATFORM_HAIKU" = "no" ]; then - #for Symbian we don't need this checking - if [ -z "$TEST_COMPILER" ]; then - echo "ERROR: Cannot set the compiler for the configuration tests" -@@ -3342,6 +3353,8 @@ if [ -z "$QT_INSTALL_PREFIX" ]; then - elif [ -d "$EPOCROOT" ] && echo $XPLATFORM | grep symbian > /dev/null; then - QT_INSTALL_PREFIX="$EPOCROOT/epoc32/" - QT_INSTALL_LIBS="$EPOCROOT/epoc32/release/armv5/lib/" -+ elif [ "$PLATFORM_HAIKU" = "yes" ]; then -+ QT_INSTALL_PREFIX="/boot/common" - else - QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION - fi -@@ -3367,6 +3380,8 @@ else - if [ "$CFG_PREFIX_INSTALL" = "no" ]; then - if [ "$PLATFORM_MAC" = "yes" ]; then - QT_INSTALL_DOCS="/Developer/Documentation/Qt" -+ elif [ "$PLATFORM_HAIKU" = "yes" ]; then -+ QT_INSTALL_DOCS="/boot/common/documentation/doc/Qt" - fi - fi - [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback -@@ -3395,6 +3410,12 @@ else - if [ "$CFG_FRAMEWORK" = "yes" ]; then - QT_INSTALL_LIBS="/Libraries/Frameworks" - fi -+ elif [ "$PLATFORM_HAIKU" = "yes" ]; then -+ if [ -f /boot/system/lib/libsupc++.so ] ; then -+ QT_INSTALL_LIBS="/boot/common/lib" -+ else -+ QT_INSTALL_LIBS="/boot/common/lib/gcc4" -+ fi - fi - fi - [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback -@@ -3418,6 +3439,8 @@ else - if [ "$CFG_PREFIX_INSTALL" = "no" ]; then - if [ "$PLATFORM_MAC" = "yes" ]; then - QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins" -+ elif [ "$PLATFORM_HAIKU" = "yes" ]; then -+ QT_INSTALL_PLUGINS="/boot/common/add-ons/Qt/plugins" - fi - fi - [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback -@@ -3429,6 +3452,8 @@ else - if [ "$CFG_PREFIX_INSTALL" = "no" ]; then - if [ "$PLATFORM_MAC" = "yes" ]; then - QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports" -+ elif [ "$PLATFORM_HAIKU" = "yes" ]; then -+ QT_INSTALL_IMPORTS="/boot/common/add-ons/Qt/imports" - fi - fi - [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback -@@ -3437,13 +3462,21 @@ else - - #data - if [ -z "$QT_INSTALL_DATA" ]; then #default -- QT_INSTALL_DATA="$QT_INSTALL_PREFIX" -+ if [ "$PLATFORM_HAIKU" = "yes" ] && [ "$CFG_PREFIX_INSTALL" = "no" ]; then -+ QT_INSTALL_DATA="/boot/common/data/Qt" -+ else -+ QT_INSTALL_DATA="$QT_INSTALL_PREFIX" -+ fi - fi - QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"` - - #translations - if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default -- QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations" -+ if [ "$PLATFORM_HAIKU" = "yes" ] && [ "$CFG_PREFIX_INSTALL" = "no" ]; then -+ QT_INSTALL_TRANSLATIONS="/boot/common/data/Qt/translations" -+ else -+ QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations" -+ fi - fi - QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"` - -@@ -3451,6 +3484,8 @@ else - if [ -z "$QT_INSTALL_SETTINGS" ]; then #default - if [ "$PLATFORM_MAC" = "yes" ]; then - QT_INSTALL_SETTINGS=/Library/Preferences/Qt -+ elif [ "$PLATFORM_HAIKU" = "yes" ] && [ "$CFG_PREFIX_INSTALL" = "no" ]; then -+ QT_INSTALL_SETTINGS="/boot/common/settings/Qt" - else - QT_INSTALL_SETTINGS=/etc/xdg - fi -@@ -3462,6 +3497,8 @@ else - if [ "$CFG_PREFIX_INSTALL" = "no" ]; then - if [ "$PLATFORM_MAC" = "yes" ]; then - QT_INSTALL_EXAMPLES="/Developer/Examples/Qt" -+ elif [ "$PLATFORM_HAIKU" = "yes" ]; then -+ QT_INSTALL_EXAMPLES="/boot/apps/Qt/Examples" - fi - fi - [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback -@@ -3473,6 +3510,8 @@ else - if [ "$CFG_PREFIX_INSTALL" = "no" ]; then - if [ "$PLATFORM_MAC" = "yes" ]; then - QT_INSTALL_DEMOS="/Developer/Examples/Qt/Demos" -+ elif [ "$PLATFORM_HAIKU" = "yes" ]; then -+ QT_INSTALL_DEMOS="/boot/apps/Qt/Demos" - fi - fi - [ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS="$QT_INSTALL_PREFIX/demos" -@@ -4238,6 +4277,8 @@ elif echo "$XPLATFORM" | grep "symbian" - Platform="Qt for Symbian" - elif [ "$XPLATFORM_MINGW" = "yes" ]; then - Platform="Qt for Windows" -+elif [ "$PLATFORM_HAIKU" = "yes" ]; then -+ Platform="Qt for Haiku" - elif [ '!' -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_LIBS_X11 | awk '{print $3;}'`" ]; then - PLATFORM_X11=yes - Platform="Qt for Linux/X11" -@@ -5415,7 +5456,7 @@ if [ "$PLATFORM_MAC" = "yes" -a ! -z "$Q - fi - - # X11/QWS --if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then -+if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" -o "$PLATFORM_HAIKU" = "yes" ]; then - - # auto-detect Glib support - if [ "$CFG_GLIB" != "no" ]; then -diff -rupN qt-everywhere-opensource-src-4.7.3/include/Qt/qhaikustyle.h qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qhaikustyle.h ---- qt-everywhere-opensource-src-4.7.3/include/Qt/qhaikustyle.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qhaikustyle.h 2011-06-02 22:56:26.000000000 +0000 -@@ -0,0 +1,9 @@ -+#ifndef QT_NO_QT_INCLUDE_WARN -+ #if defined(__GNUC__) -+ #warning "Inclusion of header files from include/Qt is deprecated." -+ #elif defined(_MSC_VER) -+ #pragma message("WARNING: Inclusion of header files from include/Qt is deprecated.") -+ #endif -+#endif -+ -+#include "../QtGui/qhaikustyle.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/Qt/qsystemtrayicon_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qsystemtrayicon_haiku.h ---- qt-everywhere-opensource-src-4.7.3/include/Qt/qsystemtrayicon_haiku.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qsystemtrayicon_haiku.h 2011-06-02 22:56:26.000000000 +0000 -@@ -0,0 +1,9 @@ -+#ifndef QT_NO_QT_INCLUDE_WARN -+ #if defined(__GNUC__) -+ #warning "Inclusion of header files from include/Qt is deprecated." -+ #elif defined(_MSC_VER) -+ #pragma message("WARNING: Inclusion of header files from include/Qt is deprecated.") -+ #endif -+#endif -+ -+#include "../QtGui/qsystemtrayicon_haiku.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/Qt/qwidget_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qwidget_haiku.h ---- qt-everywhere-opensource-src-4.7.3/include/Qt/qwidget_haiku.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qwidget_haiku.h 2011-06-02 22:56:25.000000000 +0000 -@@ -0,0 +1,9 @@ -+#ifndef QT_NO_QT_INCLUDE_WARN -+ #if defined(__GNUC__) -+ #warning "Inclusion of header files from include/Qt is deprecated." -+ #elif defined(_MSC_VER) -+ #pragma message("WARNING: Inclusion of header files from include/Qt is deprecated.") -+ #endif -+#endif -+ -+#include "../QtGui/qwidget_haiku.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/Qt/qwindowdefs_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qwindowdefs_haiku.h ---- qt-everywhere-opensource-src-4.7.3/include/Qt/qwindowdefs_haiku.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/Qt/qwindowdefs_haiku.h 2011-06-02 22:56:25.000000000 +0000 -@@ -0,0 +1,9 @@ -+#ifndef QT_NO_QT_INCLUDE_WARN -+ #if defined(__GNUC__) -+ #warning "Inclusion of header files from include/Qt is deprecated." -+ #elif defined(_MSC_VER) -+ #pragma message("WARNING: Inclusion of header files from include/Qt is deprecated.") -+ #endif -+#endif -+ -+#include "../QtGui/qwindowdefs_haiku.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/QHaikuStyle qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QHaikuStyle ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/QHaikuStyle 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QHaikuStyle 2010-04-15 16:14:35.000000000 +0000 -@@ -0,0 +1 @@ -+#include "qhaikustyle.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/QtHaikuView qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QtHaikuView ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/QtHaikuView 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QtHaikuView 2010-11-09 02:20:07.000000000 +0000 -@@ -0,0 +1 @@ -+#include "qwidget_haiku.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/QtHaikuWindow qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QtHaikuWindow ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/QtHaikuWindow 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/QtHaikuWindow 2010-11-09 02:20:07.000000000 +0000 -@@ -0,0 +1 @@ -+#include "qwidget_haiku.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/headers.pri qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/headers.pri ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/headers.pri 2011-03-30 05:16:20.013893632 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/headers.pri 2011-06-14 04:04:50.707264512 +0000 -@@ -1,3 +1,3 @@ --SYNCQT.HEADER_FILES = ../gui/dialogs/qabstractpagesetupdialog.h ../gui/dialogs/qabstractprintdialog.h ../gui/dialogs/qcolordialog.h ../gui/dialogs/qdialog.h ../gui/dialogs/qerrormessage.h ../gui/dialogs/qfiledialog.h ../gui/dialogs/qfilesystemmodel.h ../gui/dialogs/qfontdialog.h ../gui/dialogs/qinputdialog.h ../gui/dialogs/qmessagebox.h ../gui/dialogs/qpagesetupdialog.h ../gui/dialogs/qprintdialog.h ../gui/dialogs/qprintpreviewdialog.h ../gui/dialogs/qprogressdialog.h ../gui/dialogs/qwizard.h ../gui/embedded/qcopchannel_qws.h ../gui/embedded/qdecoration_qws.h ../gui/embedded/qdecorationdefault_qws.h ../gui/embedded/qdecorationfactory_qws.h ../gui/embedded/qdecorationplugin_qws.h ../gui/embedded/qdecorationstyled_qws.h ../gui/embedded/qdecorationwindows_qws.h ../gui/embedded/qdirectpainter_qws.h ../gui/embedded/qkbd_qws.h ../gui/embedded/qkbddriverfactory_qws.h ../gui/embedded/qkbddriverplugin_qws.h ../gui/embedded/qkbdlinuxinput_qws.h ../gui/embedded/qkbdqnx_qws.h ../gui/embedded/qkbdtty_qws.h ../gui/embedded/qkbdum_qws.h ../gui/embedded/qkbdvfb_qws.h ../gui/embedded/qmouse_qws.h ../gui/embedded/qmousedriverfactory_qws.h ../gui/embedded/qmousedriverplugin_qws.h ../gui/embedded/qmouselinuxinput_qws.h ../gui/embedded/qmouselinuxtp_qws.h ../gui/embedded/qmousepc_qws.h ../gui/embedded/qmouseqnx_qws.h ../gui/embedded/qmousetslib_qws.h ../gui/embedded/qmousevfb_qws.h ../gui/embedded/qscreen_qws.h ../gui/embedded/qscreendriverfactory_qws.h ../gui/embedded/qscreendriverplugin_qws.h ../gui/embedded/qscreenlinuxfb_qws.h ../gui/embedded/qscreenproxy_qws.h ../gui/embedded/qscreenqnx_qws.h ../gui/embedded/qscreentransformed_qws.h ../gui/embedded/qscreenvfb_qws.h ../gui/embedded/qsoundqss_qws.h ../gui/embedded/qtransportauth_qws.h ../gui/embedded/qtransportauthdefs_qws.h ../gui/embedded/qvfbhdr.h ../gui/embedded/qwindowsystem_qws.h ../gui/embedded/qwscursor_qws.h ../gui/embedded/qwsdisplay_qws.h ../gui/embedded/qwsembedwidget.h ../gui/embedded/qwsevent_qws.h ../gui/embedded/qwsmanager_qws.h ../gui/embedded/qwsproperty_qws.h ../gui/embedded/qwsprotocolitem_qws.h ../gui/embedded/qwssocket_qws.h ../gui/embedded/qwsutils_qws.h ../gui/graphicsview/qgraphicsanchorlayout.h ../gui/graphicsview/qgraphicsgridlayout.h ../gui/graphicsview/qgraphicsitem.h ../gui/graphicsview/qgraphicsitemanimation.h ../gui/graphicsview/qgraphicslayout.h ../gui/graphicsview/qgraphicslayoutitem.h ../gui/graphicsview/qgraphicslinearlayout.h ../gui/graphicsview/qgraphicsproxywidget.h ../gui/graphicsview/qgraphicsscene.h ../gui/graphicsview/qgraphicssceneevent.h ../gui/graphicsview/qgraphicstransform.h ../gui/graphicsview/qgraphicsview.h ../gui/graphicsview/qgraphicswidget.h ../gui/kernel/qaction.h ../gui/kernel/qactiongroup.h ../gui/kernel/qapplication.h ../gui/kernel/qboxlayout.h ../gui/kernel/qclipboard.h ../gui/kernel/qcursor.h ../gui/kernel/qdesktopwidget.h ../gui/kernel/qdrag.h ../gui/kernel/qevent.h ../gui/kernel/qformlayout.h ../gui/kernel/qgesture.h ../gui/kernel/qgesturerecognizer.h ../gui/kernel/qgridlayout.h ../gui/kernel/qguifunctions_wince.h ../gui/kernel/qkeysequence.h ../gui/kernel/qlayout.h ../gui/kernel/qlayoutitem.h ../gui/kernel/qmacdefines_mac.h ../gui/kernel/qmime.h ../gui/kernel/qpalette.h ../gui/kernel/qsessionmanager.h ../gui/kernel/qshortcut.h ../gui/kernel/qsizepolicy.h ../gui/kernel/qsound.h ../gui/kernel/qstackedlayout.h ../gui/kernel/qtooltip.h ../gui/kernel/qwhatsthis.h ../gui/kernel/qwidget.h ../gui/kernel/qwidgetaction.h ../gui/kernel/qwindowdefs.h ../gui/kernel/qwindowdefs_win.h ../gui/kernel/qx11embed_x11.h ../gui/kernel/qx11info_x11.h ../gui/effects/qgraphicseffect.h ../gui/s60framework/qs60mainapplication.h ../gui/s60framework/qs60mainappui.h ../gui/s60framework/qs60maindocument.h ../gui/math3d/qgenericmatrix.h ../gui/math3d/qmatrix4x4.h ../gui/math3d/qquaternion.h ../gui/math3d/qvector2d.h ../gui/math3d/qvector3d.h ../gui/math3d/qvector4d.h ../gui/image/qbitmap.h ../gui/image/qicon.h ../gui/image/qiconengine.h ../gui/image/qiconengineplugin.h ../gui/image/qimage.h ../gui/image/qimageiohandler.h ../gui/image/qimagereader.h ../gui/image/qimagewriter.h ../gui/image/qmovie.h ../gui/image/qpicture.h ../gui/image/qpictureformatplugin.h ../gui/image/qpixmap.h ../gui/image/qpixmapcache.h ../gui/symbian/qsymbianevent.h ../gui/text/qabstractfontengine_qws.h ../gui/text/qabstracttextdocumentlayout.h ../gui/text/qfont.h ../gui/text/qfontdatabase.h ../gui/text/qfontinfo.h ../gui/text/qfontmetrics.h ../gui/text/qstatictext.h ../gui/text/qsyntaxhighlighter.h ../gui/text/qtextcursor.h ../gui/text/qtextdocument.h ../gui/text/qtextdocumentfragment.h ../gui/text/qtextdocumentwriter.h ../gui/text/qtextformat.h ../gui/text/qtextlayout.h ../gui/text/qtextlist.h ../gui/text/qtextobject.h ../gui/text/qtextoption.h ../gui/text/qtexttable.h ../gui/itemviews/qabstractitemdelegate.h ../gui/itemviews/qabstractitemview.h ../gui/itemviews/qabstractproxymodel.h ../gui/itemviews/qcolumnview.h ../gui/itemviews/qdatawidgetmapper.h ../gui/itemviews/qdirmodel.h ../gui/itemviews/qfileiconprovider.h ../gui/itemviews/qheaderview.h ../gui/itemviews/qitemdelegate.h ../gui/itemviews/qitemeditorfactory.h ../gui/itemviews/qitemselectionmodel.h ../gui/itemviews/qlistview.h ../gui/itemviews/qlistwidget.h ../gui/itemviews/qproxymodel.h ../gui/itemviews/qsortfilterproxymodel.h ../gui/itemviews/qstandarditemmodel.h ../gui/itemviews/qstringlistmodel.h ../gui/itemviews/qstyleditemdelegate.h ../gui/itemviews/qtableview.h ../gui/itemviews/qtablewidget.h ../gui/itemviews/qtreeview.h ../gui/itemviews/qtreewidget.h ../gui/itemviews/qtreewidgetitemiterator.h ../gui/widgets/qabstractbutton.h ../gui/widgets/qabstractscrollarea.h ../gui/widgets/qabstractslider.h ../gui/widgets/qabstractspinbox.h ../gui/widgets/qbuttongroup.h ../gui/widgets/qcalendarwidget.h ../gui/widgets/qcheckbox.h ../gui/widgets/qcombobox.h ../gui/widgets/qcommandlinkbutton.h ../gui/widgets/qdatetimeedit.h ../gui/widgets/qdial.h ../gui/widgets/qdialogbuttonbox.h ../gui/widgets/qdockwidget.h ../gui/widgets/qfocusframe.h ../gui/widgets/qfontcombobox.h ../gui/widgets/qframe.h ../gui/widgets/qgroupbox.h ../gui/widgets/qlabel.h ../gui/widgets/qlcdnumber.h ../gui/widgets/qlineedit.h ../gui/widgets/qmaccocoaviewcontainer_mac.h ../gui/widgets/qmacnativewidget_mac.h ../gui/widgets/qmainwindow.h ../gui/widgets/qmdiarea.h ../gui/widgets/qmdisubwindow.h ../gui/widgets/qmenu.h ../gui/widgets/qmenubar.h ../gui/widgets/qmenudata.h ../gui/widgets/qplaintextedit.h ../gui/widgets/qprintpreviewwidget.h ../gui/widgets/qprogressbar.h ../gui/widgets/qpushbutton.h ../gui/widgets/qradiobutton.h ../gui/widgets/qrubberband.h ../gui/widgets/qscrollarea.h ../gui/widgets/qscrollbar.h ../gui/widgets/qsizegrip.h ../gui/widgets/qslider.h ../gui/widgets/qspinbox.h ../gui/widgets/qsplashscreen.h ../gui/widgets/qsplitter.h ../gui/widgets/qstackedwidget.h ../gui/widgets/qstatusbar.h ../gui/widgets/qtabbar.h ../gui/widgets/qtabwidget.h ../gui/widgets/qtextbrowser.h ../gui/widgets/qtextedit.h ../gui/widgets/qtoolbar.h ../gui/widgets/qtoolbox.h ../gui/widgets/qtoolbutton.h ../gui/widgets/qvalidator.h ../gui/widgets/qworkspace.h ../gui/statemachine/qkeyeventtransition.h ../gui/statemachine/qmouseeventtransition.h ../gui/util/qcompleter.h ../gui/util/qdesktopservices.h ../gui/util/qsystemtrayicon.h ../gui/util/qundogroup.h ../gui/util/qundostack.h ../gui/util/qundoview.h ../gui/accessible/qaccessible.h ../gui/accessible/qaccessible2.h ../gui/accessible/qaccessiblebridge.h ../gui/accessible/qaccessibleobject.h ../gui/accessible/qaccessibleplugin.h ../gui/accessible/qaccessiblewidget.h ../gui/styles/qcdestyle.h ../gui/styles/qcleanlooksstyle.h ../gui/styles/qcommonstyle.h ../gui/styles/qgtkstyle.h ../gui/styles/qmacstyle_mac.h ../gui/styles/qmotifstyle.h ../gui/styles/qplastiquestyle.h ../gui/styles/qproxystyle.h ../gui/styles/qs60style.h ../gui/styles/qstyle.h ../gui/styles/qstylefactory.h ../gui/styles/qstyleoption.h ../gui/styles/qstyleplugin.h ../gui/styles/qwindowscestyle.h ../gui/styles/qwindowsmobilestyle.h ../gui/styles/qwindowsstyle.h ../gui/styles/qwindowsvistastyle.h ../gui/styles/qwindowsxpstyle.h ../gui/inputmethod/qinputcontext.h ../gui/inputmethod/qinputcontextfactory.h ../gui/inputmethod/qinputcontextplugin.h ../gui/painting/qbrush.h ../gui/painting/qcolor.h ../gui/painting/qcolormap.h ../gui/painting/qdrawutil.h ../gui/painting/qmatrix.h ../gui/painting/qpaintdevice.h ../gui/painting/qpaintengine.h ../gui/painting/qpainter.h ../gui/painting/qpainterpath.h ../gui/painting/qpen.h ../gui/painting/qpolygon.h ../gui/painting/qprintengine.h ../gui/painting/qprinter.h ../gui/painting/qprinterinfo.h ../gui/painting/qregion.h ../gui/painting/qrgb.h ../gui/painting/qstylepainter.h ../gui/painting/qtransform.h ../gui/painting/qwmatrix.h ../../include/QtGui/QtGui --SYNCQT.HEADER_CLASSES = ../../include/QtGui/QAbstractPageSetupDialog ../../include/QtGui/QAbstractPrintDialog ../../include/QtGui/QColorDialog ../../include/QtGui/QDialog ../../include/QtGui/QErrorMessage ../../include/QtGui/QFileDialog ../../include/QtGui/QFileSystemModel ../../include/QtGui/QFontDialog ../../include/QtGui/QInputDialog ../../include/QtGui/QMessageBox ../../include/QtGui/QPageSetupDialog ../../include/QtGui/QUnixPrintWidget ../../include/QtGui/QPrintDialog ../../include/QtGui/QPrintPreviewDialog ../../include/QtGui/QProgressDialog ../../include/QtGui/QWizard ../../include/QtGui/QWizardPage ../../include/QtGui/QCopChannel ../../include/QtGui/QDecorationAction ../../include/QtGui/QDecoration ../../include/QtGui/QDecorationDefault ../../include/QtGui/QDecorationFactory ../../include/QtGui/QDecorationFactoryInterface ../../include/QtGui/QDecorationPlugin ../../include/QtGui/QDecorationStyled ../../include/QtGui/QDecorationWindows ../../include/QtGui/QDirectPainter ../../include/QtGui/QWSKeyboardHandler ../../include/QtGui/QKbdDriverFactory ../../include/QtGui/QWSKeyboardHandlerFactoryInterface ../../include/QtGui/QKbdDriverPlugin ../../include/QtGui/QWSLinuxInputKeyboardHandler ../../include/QtGui/QWSQnxKeyboardHandler ../../include/QtGui/QWSTtyKeyboardHandler ../../include/QtGui/QWSUmKeyboardHandler ../../include/QtGui/QVFbKeyboardHandler ../../include/QtGui/QWSPointerCalibrationData ../../include/QtGui/QWSMouseHandler ../../include/QtGui/QWSCalibratedMouseHandler ../../include/QtGui/QMouseDriverFactory ../../include/QtGui/QWSMouseHandlerFactoryInterface ../../include/QtGui/QMouseDriverPlugin ../../include/QtGui/QWSLinuxInputMouseHandler ../../include/QtGui/QWSLinuxTPMouseHandler ../../include/QtGui/QWSPcMouseHandler ../../include/QtGui/QQnxMouseHandler ../../include/QtGui/QWSTslibMouseHandler ../../include/QtGui/QVFbMouseHandler ../../include/QtGui/QScreenCursor ../../include/QtGui/QPoolEntry ../../include/QtGui/QScreen ../../include/QtGui/QScreenDriverFactory ../../include/QtGui/QScreenDriverFactoryInterface ../../include/QtGui/QScreenDriverPlugin ../../include/QtGui/QLinuxFb_Shared ../../include/QtGui/QLinuxFbScreen ../../include/QtGui/QProxyScreenCursor ../../include/QtGui/QProxyScreen ../../include/QtGui/QQnxScreen ../../include/QtGui/QTransformedScreen ../../include/QtGui/QVFbScreen ../../include/QtGui/QWSSoundServer ../../include/QtGui/QWSSoundClient ../../include/QtGui/QWSSoundServerSocket ../../include/QtGui/QTransportAuth ../../include/QtGui/QAuthDevice ../../include/QtGui/QVFbHeader ../../include/QtGui/QVFbKeyData ../../include/QtGui/QWSInternalWindowInfo ../../include/QtGui/QWSScreenSaver ../../include/QtGui/QWSWindow ../../include/QtGui/QWSServer ../../include/QtGui/QWSInputMethod ../../include/QtGui/QWSCursorMap ../../include/QtGui/QWSClient ../../include/QtGui/QWSCursor ../../include/QtGui/QWSWindowInfo ../../include/QtGui/QWSDisplay ../../include/QtGui/QWSEmbedWidget ../../include/QtGui/QWSEvent ../../include/QtGui/QWSManager ../../include/QtGui/QWSPropertyManager ../../include/QtGui/QWSProtocolItem ../../include/QtGui/QWSSocket ../../include/QtGui/QWSServerSocket ../../include/QtGui/QGraphicsAnchor ../../include/QtGui/QGraphicsAnchorLayout ../../include/QtGui/QGraphicsGridLayout ../../include/QtGui/QGraphicsItem ../../include/QtGui/QGraphicsObject ../../include/QtGui/QAbstractGraphicsShapeItem ../../include/QtGui/QGraphicsPathItem ../../include/QtGui/QGraphicsRectItem ../../include/QtGui/QGraphicsEllipseItem ../../include/QtGui/QGraphicsPolygonItem ../../include/QtGui/QGraphicsLineItem ../../include/QtGui/QGraphicsPixmapItem ../../include/QtGui/QGraphicsTextItem ../../include/QtGui/QGraphicsSimpleTextItem ../../include/QtGui/QGraphicsItemGroup ../../include/QtGui/QGraphicsItemAnimation ../../include/QtGui/QGraphicsLayout ../../include/QtGui/QGraphicsLayoutItem ../../include/QtGui/QGraphicsLinearLayout ../../include/QtGui/QGraphicsProxyWidget ../../include/QtGui/QGraphicsScene ../../include/QtGui/QGraphicsSceneEvent ../../include/QtGui/QGraphicsSceneMouseEvent ../../include/QtGui/QGraphicsSceneWheelEvent ../../include/QtGui/QGraphicsSceneContextMenuEvent ../../include/QtGui/QGraphicsSceneHoverEvent ../../include/QtGui/QGraphicsSceneHelpEvent ../../include/QtGui/QGraphicsSceneDragDropEvent ../../include/QtGui/QGraphicsSceneResizeEvent ../../include/QtGui/QGraphicsSceneMoveEvent ../../include/QtGui/QGraphicsTransform ../../include/QtGui/QGraphicsScale ../../include/QtGui/QGraphicsRotation ../../include/QtGui/QGraphicsView ../../include/QtGui/QGraphicsWidget ../../include/QtGui/QAction ../../include/QtGui/QActionGroup ../../include/QtGui/QApplication ../../include/QtGui/QBoxLayout ../../include/QtGui/QHBoxLayout ../../include/QtGui/QVBoxLayout ../../include/QtGui/QClipboard ../../include/QtGui/QCursor ../../include/QtGui/QCursorShape ../../include/QtGui/QDesktopWidget ../../include/QtGui/QDrag ../../include/QtGui/QtEvents ../../include/QtGui/QInputEvent ../../include/QtGui/QMouseEvent ../../include/QtGui/QHoverEvent ../../include/QtGui/QWheelEvent ../../include/QtGui/QTabletEvent ../../include/QtGui/QKeyEvent ../../include/QtGui/QFocusEvent ../../include/QtGui/QPaintEvent ../../include/QtGui/QUpdateLaterEvent ../../include/QtGui/QMoveEvent ../../include/QtGui/QResizeEvent ../../include/QtGui/QCloseEvent ../../include/QtGui/QIconDragEvent ../../include/QtGui/QShowEvent ../../include/QtGui/QHideEvent ../../include/QtGui/QContextMenuEvent ../../include/QtGui/QInputMethodEvent ../../include/QtGui/QDropEvent ../../include/QtGui/QDragMoveEvent ../../include/QtGui/QDragEnterEvent ../../include/QtGui/QDragResponseEvent ../../include/QtGui/QDragLeaveEvent ../../include/QtGui/QHelpEvent ../../include/QtGui/QStatusTipEvent ../../include/QtGui/QWhatsThisClickedEvent ../../include/QtGui/QActionEvent ../../include/QtGui/QFileOpenEvent ../../include/QtGui/QToolBarChangeEvent ../../include/QtGui/QShortcutEvent ../../include/QtGui/QClipboardEvent ../../include/QtGui/QWindowStateChangeEvent ../../include/QtGui/QMenubarUpdatedEvent ../../include/QtGui/QTouchEvent ../../include/QtGui/QGestureEvent ../../include/QtGui/QFormLayout ../../include/QtGui/QGesture ../../include/QtGui/QPanGesture ../../include/QtGui/QPinchGesture ../../include/QtGui/QSwipeGesture ../../include/QtGui/QTapGesture ../../include/QtGui/QTapAndHoldGesture ../../include/QtGui/QGestureRecognizer ../../include/QtGui/QGridLayout ../../include/QtGui/QKeySequence ../../include/QtGui/QLayoutIterator ../../include/QtGui/QLayout ../../include/QtGui/QLayoutItem ../../include/QtGui/QSpacerItem ../../include/QtGui/QWidgetItem ../../include/QtGui/QWidgetItemV2 ../../include/QtGui/QMimeSource ../../include/QtGui/QWindowsMime ../../include/QtGui/QMacMime ../../include/QtGui/QMacPasteboardMime ../../include/QtGui/QPalette ../../include/QtGui/QColorGroup ../../include/QtGui/QSessionManager ../../include/QtGui/QShortcut ../../include/QtGui/QSizePolicy ../../include/QtGui/QSound ../../include/QtGui/QStackedLayout ../../include/QtGui/QToolTip ../../include/QtGui/QWhatsThis ../../include/QtGui/QWidgetData ../../include/QtGui/QWidget ../../include/QtGui/QWidgetAction ../../include/QtGui/QWidgetList ../../include/QtGui/QWidgetMapper ../../include/QtGui/QWidgetSet ../../include/QtGui/QX11EmbedWidget ../../include/QtGui/QX11EmbedContainer ../../include/QtGui/QX11Info ../../include/QtGui/QGraphicsEffect ../../include/QtGui/QGraphicsColorizeEffect ../../include/QtGui/QGraphicsBlurEffect ../../include/QtGui/QGraphicsDropShadowEffect ../../include/QtGui/QGraphicsOpacityEffect ../../include/QtGui/QS60MainApplicationBase ../../include/QtGui/QS60MainApplication ../../include/QtGui/QS60MainAppUiBase ../../include/QtGui/QS60StubAknAppUiBase ../../include/QtGui/QS60StubMEikStatusPaneObserver ../../include/QtGui/QS60StubMAknTouchPaneObserver ../../include/QtGui/QS60StubAknAppUi ../../include/QtGui/QS60MainAppUi ../../include/QtGui/QS60MainDocumentBase ../../include/QtGui/QS60MainDocument ../../include/QtGui/QGenericMatrix ../../include/QtGui/QMatrix2x2 ../../include/QtGui/QMatrix2x3 ../../include/QtGui/QMatrix2x4 ../../include/QtGui/QMatrix3x2 ../../include/QtGui/QMatrix3x3 ../../include/QtGui/QMatrix3x4 ../../include/QtGui/QMatrix4x2 ../../include/QtGui/QMatrix4x3 ../../include/QtGui/QMatrix4x4 ../../include/QtGui/QQuaternion ../../include/QtGui/QVector2D ../../include/QtGui/QVector3D ../../include/QtGui/QVector4D ../../include/QtGui/QBitmap ../../include/QtGui/QIcon ../../include/QtGui/QIconSet ../../include/QtGui/QIconEngine ../../include/QtGui/QIconEngineV2 ../../include/QtGui/QIconEngineFactoryInterface ../../include/QtGui/QIconEnginePlugin ../../include/QtGui/QIconEngineFactoryInterfaceV2 ../../include/QtGui/QIconEnginePluginV2 ../../include/QtGui/QImageTextKeyLang ../../include/QtGui/QImage ../../include/QtGui/QImageIOHandler ../../include/QtGui/QImageIOHandlerFactoryInterface ../../include/QtGui/QImageIOPlugin ../../include/QtGui/QImageReader ../../include/QtGui/QImageWriter ../../include/QtGui/QMovie ../../include/QtGui/QPicture ../../include/QtGui/QPictureIO ../../include/QtGui/QPictureFormatInterface ../../include/QtGui/QPictureFormatPlugin ../../include/QtGui/QPixmap ../../include/QtGui/QPixmapCache ../../include/QtGui/QSymbianEvent ../../include/QtGui/QFontEngineInfo ../../include/QtGui/QFontEngineFactoryInterface ../../include/QtGui/QFontEnginePlugin ../../include/QtGui/QAbstractFontEngine ../../include/QtGui/QAbstractTextDocumentLayout ../../include/QtGui/QTextObjectInterface ../../include/QtGui/QFont ../../include/QtGui/QFontDatabase ../../include/QtGui/QFontInfo ../../include/QtGui/QFontMetrics ../../include/QtGui/QFontMetricsF ../../include/QtGui/QStaticText ../../include/QtGui/QSyntaxHighlighter ../../include/QtGui/QTextCursor ../../include/QtGui/QAbstractUndoItem ../../include/QtGui/QTextDocument ../../include/QtGui/QTextDocumentFragment ../../include/QtGui/QTextDocumentWriter ../../include/QtGui/QTextLength ../../include/QtGui/QTextFormat ../../include/QtGui/QTextCharFormat ../../include/QtGui/QTextBlockFormat ../../include/QtGui/QTextListFormat ../../include/QtGui/QTextImageFormat ../../include/QtGui/QTextFrameFormat ../../include/QtGui/QTextTableFormat ../../include/QtGui/QTextTableCellFormat ../../include/QtGui/QTextInlineObject ../../include/QtGui/QTextLayout ../../include/QtGui/QTextLine ../../include/QtGui/QTextList ../../include/QtGui/QTextObject ../../include/QtGui/QTextBlockGroup ../../include/QtGui/QTextFrameLayoutData ../../include/QtGui/QTextFrame ../../include/QtGui/QTextBlockUserData ../../include/QtGui/QTextBlock ../../include/QtGui/QTextFragment ../../include/QtGui/QTextOption ../../include/QtGui/QTextTableCell ../../include/QtGui/QTextTable ../../include/QtGui/QAbstractItemDelegate ../../include/QtGui/QAbstractItemView ../../include/QtGui/QAbstractProxyModel ../../include/QtGui/QColumnView ../../include/QtGui/QDataWidgetMapper ../../include/QtGui/QDirModel ../../include/QtGui/QFileIconProvider ../../include/QtGui/QHeaderView ../../include/QtGui/QItemDelegate ../../include/QtGui/QItemEditorCreatorBase ../../include/QtGui/QItemEditorCreator ../../include/QtGui/QStandardItemEditorCreator ../../include/QtGui/QItemEditorFactory ../../include/QtGui/QItemSelectionRange ../../include/QtGui/QItemSelectionModel ../../include/QtGui/QItemSelection ../../include/QtGui/QListView ../../include/QtGui/QListWidgetItem ../../include/QtGui/QListWidget ../../include/QtGui/QProxyModel ../../include/QtGui/QSortFilterProxyModel ../../include/QtGui/QStandardItem ../../include/QtGui/QStandardItemModel ../../include/QtGui/QStringListModel ../../include/QtGui/QStyledItemDelegate ../../include/QtGui/QTableView ../../include/QtGui/QTableWidgetSelectionRange ../../include/QtGui/QTableWidgetItem ../../include/QtGui/QTableWidget ../../include/QtGui/QTreeView ../../include/QtGui/QTreeWidgetItem ../../include/QtGui/QTreeWidget ../../include/QtGui/QTreeWidgetItemIterator ../../include/QtGui/QAbstractButton ../../include/QtGui/QAbstractScrollArea ../../include/QtGui/QAbstractSlider ../../include/QtGui/QAbstractSpinBox ../../include/QtGui/QButtonGroup ../../include/QtGui/QCalendarWidget ../../include/QtGui/QCheckBox ../../include/QtGui/QComboBox ../../include/QtGui/QCommandLinkButton ../../include/QtGui/QDateTimeEdit ../../include/QtGui/QTimeEdit ../../include/QtGui/QDateEdit ../../include/QtGui/QDial ../../include/QtGui/QDialogButtonBox ../../include/QtGui/QDockWidget ../../include/QtGui/QFocusFrame ../../include/QtGui/QFontComboBox ../../include/QtGui/QFrame ../../include/QtGui/QGroupBox ../../include/QtGui/QLabel ../../include/QtGui/QLCDNumber ../../include/QtGui/QLineEdit ../../include/QtGui/QMacCocoaViewContainer ../../include/QtGui/QMacNativeWidget ../../include/QtGui/QMainWindow ../../include/QtGui/QMdiArea ../../include/QtGui/QMdiSubWindow ../../include/QtGui/QMenu ../../include/QtGui/QMenuBar ../../include/QtGui/QMenuItem ../../include/QtGui/QPlainTextEdit ../../include/QtGui/QPlainTextDocumentLayout ../../include/QtGui/QPrintPreviewWidget ../../include/QtGui/QProgressBar ../../include/QtGui/QPushButton ../../include/QtGui/QRadioButton ../../include/QtGui/QRubberBand ../../include/QtGui/QScrollArea ../../include/QtGui/QScrollBar ../../include/QtGui/QSizeGrip ../../include/QtGui/QSlider ../../include/QtGui/QSpinBox ../../include/QtGui/QDoubleSpinBox ../../include/QtGui/QSplashScreen ../../include/QtGui/QSplitter ../../include/QtGui/QSplitterHandle ../../include/QtGui/QStackedWidget ../../include/QtGui/QStatusBar ../../include/QtGui/QTabBar ../../include/QtGui/QTabWidget ../../include/QtGui/QTextBrowser ../../include/QtGui/QTextEdit ../../include/QtGui/QToolBar ../../include/QtGui/QToolBox ../../include/QtGui/QToolButton ../../include/QtGui/QValidator ../../include/QtGui/QIntValidator ../../include/QtGui/QDoubleValidator ../../include/QtGui/QRegExpValidator ../../include/QtGui/QWorkspace ../../include/QtGui/QKeyEventTransition ../../include/QtGui/QMouseEventTransition ../../include/QtGui/QCompleter ../../include/QtGui/QDesktopServices ../../include/QtGui/QSystemTrayIcon ../../include/QtGui/QUndoGroup ../../include/QtGui/QUndoCommand ../../include/QtGui/QUndoStack ../../include/QtGui/QUndoView ../../include/QtGui/QAccessible ../../include/QtGui/QAccessibleInterface ../../include/QtGui/QAccessibleInterfaceEx ../../include/QtGui/QAccessibleEvent ../../include/QtGui/QAccessible2Interface ../../include/QtGui/QAccessibleTextInterface ../../include/QtGui/QAccessibleEditableTextInterface ../../include/QtGui/QAccessibleSimpleEditableTextInterface ../../include/QtGui/QAccessibleValueInterface ../../include/QtGui/QAccessibleTableInterface ../../include/QtGui/QAccessibleActionInterface ../../include/QtGui/QAccessibleImageInterface ../../include/QtGui/QAccessibleBridge ../../include/QtGui/QAccessibleBridgeFactoryInterface ../../include/QtGui/QAccessibleBridgePlugin ../../include/QtGui/QAccessibleObject ../../include/QtGui/QAccessibleObjectEx ../../include/QtGui/QAccessibleApplication ../../include/QtGui/QAccessibleFactoryInterface ../../include/QtGui/QAccessiblePlugin ../../include/QtGui/QAccessibleWidget ../../include/QtGui/QAccessibleWidgetEx ../../include/QtGui/QCDEStyle ../../include/QtGui/QCleanlooksStyle ../../include/QtGui/QCommonStyle ../../include/QtGui/QGtkStyle ../../include/QtGui/QMacStyle ../../include/QtGui/QMotifStyle ../../include/QtGui/QPlastiqueStyle ../../include/QtGui/QProxyStyle ../../include/QtGui/QS60Style ../../include/QtGui/QStyle ../../include/QtGui/QStyleFactory ../../include/QtGui/QStyleOption ../../include/QtGui/QStyleOptionFocusRect ../../include/QtGui/QStyleOptionFrame ../../include/QtGui/QStyleOptionFrameV2 ../../include/QtGui/QStyleOptionFrameV3 ../../include/QtGui/QStyleOptionTabWidgetFrame ../../include/QtGui/QStyleOptionTabWidgetFrameV2 ../../include/QtGui/QStyleOptionTabBarBase ../../include/QtGui/QStyleOptionTabBarBaseV2 ../../include/QtGui/QStyleOptionHeader ../../include/QtGui/QStyleOptionButton ../../include/QtGui/QStyleOptionTab ../../include/QtGui/QStyleOptionTabV2 ../../include/QtGui/QStyleOptionTabV3 ../../include/QtGui/QStyleOptionToolBar ../../include/QtGui/QStyleOptionProgressBar ../../include/QtGui/QStyleOptionProgressBarV2 ../../include/QtGui/QStyleOptionMenuItem ../../include/QtGui/QStyleOptionQ3ListViewItem ../../include/QtGui/QStyleOptionQ3DockWindow ../../include/QtGui/QStyleOptionDockWidget ../../include/QtGui/QStyleOptionDockWidgetV2 ../../include/QtGui/QStyleOptionViewItem ../../include/QtGui/QStyleOptionViewItemV2 ../../include/QtGui/QStyleOptionViewItemV3 ../../include/QtGui/QStyleOptionViewItemV4 ../../include/QtGui/QStyleOptionToolBox ../../include/QtGui/QStyleOptionToolBoxV2 ../../include/QtGui/QStyleOptionRubberBand ../../include/QtGui/QStyleOptionComplex ../../include/QtGui/QStyleOptionSlider ../../include/QtGui/QStyleOptionSpinBox ../../include/QtGui/QStyleOptionQ3ListView ../../include/QtGui/QStyleOptionToolButton ../../include/QtGui/QStyleOptionComboBox ../../include/QtGui/QStyleOptionTitleBar ../../include/QtGui/QStyleOptionGroupBox ../../include/QtGui/QStyleOptionSizeGrip ../../include/QtGui/QStyleOptionGraphicsItem ../../include/QtGui/QStyleHintReturn ../../include/QtGui/QStyleHintReturnMask ../../include/QtGui/QStyleHintReturnVariant ../../include/QtGui/QStyleFactoryInterface ../../include/QtGui/QStylePlugin ../../include/QtGui/QWindowsCEStyle ../../include/QtGui/QWindowsMobileStyle ../../include/QtGui/QWindowsStyle ../../include/QtGui/QWindowsVistaStyle ../../include/QtGui/QWindowsXPStyle ../../include/QtGui/QInputContext ../../include/QtGui/QInputContextFactory ../../include/QtGui/QInputContextFactoryInterface ../../include/QtGui/QInputContextPlugin ../../include/QtGui/QBrush ../../include/QtGui/QBrushData ../../include/QtGui/QGradientStop ../../include/QtGui/QGradientStops ../../include/QtGui/QGradient ../../include/QtGui/QLinearGradient ../../include/QtGui/QRadialGradient ../../include/QtGui/QConicalGradient ../../include/QtGui/QColor ../../include/QtGui/QColormap ../../include/QtGui/QTileRules ../../include/QtGui/QMatrix ../../include/QtGui/QPaintDevice ../../include/QtGui/QTextItem ../../include/QtGui/QPaintEngine ../../include/QtGui/QPaintEngineState ../../include/QtGui/QPainter ../../include/QtGui/QPainterPath ../../include/QtGui/QPainterPathPrivate ../../include/QtGui/QPainterPathStroker ../../include/QtGui/QPen ../../include/QtGui/QPolygon ../../include/QtGui/QPolygonF ../../include/QtGui/QPrintEngine ../../include/QtGui/QPrinter ../../include/QtGui/QPrinterInfo ../../include/QtGui/QRegion ../../include/QtGui/QRgb ../../include/QtGui/QStylePainter ../../include/QtGui/QTransform ../../include/QtGui/QWMatrix --SYNCQT.PRIVATE_HEADER_FILES = ../gui/dialogs/qabstractpagesetupdialog_p.h ../gui/dialogs/qabstractprintdialog_p.h ../gui/dialogs/qcolordialog_p.h ../gui/dialogs/qdialog_p.h ../gui/dialogs/qfiledialog_p.h ../gui/dialogs/qfiledialog_win_p.h ../gui/dialogs/qfileinfogatherer_p.h ../gui/dialogs/qfilesystemmodel_p.h ../gui/dialogs/qfontdialog_p.h ../gui/dialogs/qfscompleter_p.h ../gui/dialogs/qpagesetupdialog_unix_p.h ../gui/dialogs/qsidebar_p.h ../gui/dialogs/qwizard_win_p.h ../gui/embedded/qkbd_defaultmap_qws_p.h ../gui/embedded/qkbd_qws_p.h ../gui/embedded/qlock_p.h ../gui/embedded/qscreenmulti_qws_p.h ../gui/embedded/qtransportauth_qws_p.h ../gui/embedded/qunixsocket_p.h ../gui/embedded/qunixsocketserver_p.h ../gui/embedded/qwindowsystem_p.h ../gui/embedded/qwscommand_qws_p.h ../gui/embedded/qwsdisplay_qws_p.h ../gui/embedded/qwslock_p.h ../gui/embedded/qwsmanager_p.h ../gui/embedded/qwssharedmemory_p.h ../gui/embedded/qwssignalhandler_p.h ../gui/graphicsview/qgraph_p.h ../gui/graphicsview/qgraphicsanchorlayout_p.h ../gui/graphicsview/qgraphicsitem_p.h ../gui/graphicsview/qgraphicslayout_p.h ../gui/graphicsview/qgraphicslayoutitem_p.h ../gui/graphicsview/qgraphicsproxywidget_p.h ../gui/graphicsview/qgraphicsscene_bsp_p.h ../gui/graphicsview/qgraphicsscene_p.h ../gui/graphicsview/qgraphicsscenebsptreeindex_p.h ../gui/graphicsview/qgraphicssceneindex_p.h ../gui/graphicsview/qgraphicsscenelinearindex_p.h ../gui/graphicsview/qgraphicstransform_p.h ../gui/graphicsview/qgraphicsview_p.h ../gui/graphicsview/qgraphicswidget_p.h ../gui/graphicsview/qgridlayoutengine_p.h ../gui/graphicsview/qsimplex_p.h ../gui/kernel/qaction_p.h ../gui/kernel/qapplication_p.h ../gui/kernel/qclipboard_p.h ../gui/kernel/qcocoaapplication_mac_p.h ../gui/kernel/qcocoaapplicationdelegate_mac_p.h ../gui/kernel/qcocoamenuloader_mac_p.h ../gui/kernel/qcocoapanel_mac_p.h ../gui/kernel/qcocoasharedwindowmethods_mac_p.h ../gui/kernel/qcocoaview_mac_p.h ../gui/kernel/qcocoawindow_mac_p.h ../gui/kernel/qcocoawindowcustomthemeframe_mac_p.h ../gui/kernel/qcocoawindowdelegate_mac_p.h ../gui/kernel/qcursor_p.h ../gui/kernel/qdesktopwidget_mac_p.h ../gui/kernel/qdnd_p.h ../gui/kernel/qevent_p.h ../gui/kernel/qeventdispatcher_glib_qws_p.h ../gui/kernel/qeventdispatcher_mac_p.h ../gui/kernel/qeventdispatcher_qws_p.h ../gui/kernel/qeventdispatcher_s60_p.h ../gui/kernel/qeventdispatcher_x11_p.h ../gui/kernel/qgesture_p.h ../gui/kernel/qgesturemanager_p.h ../gui/kernel/qguieventdispatcher_glib_p.h ../gui/kernel/qguiplatformplugin_p.h ../gui/kernel/qkde_p.h ../gui/kernel/qkeymapper_p.h ../gui/kernel/qkeysequence_p.h ../gui/kernel/qlayout_p.h ../gui/kernel/qlayoutengine_p.h ../gui/kernel/qmacgesturerecognizer_mac_p.h ../gui/kernel/qmultitouch_mac_p.h ../gui/kernel/qnsframeview_mac_p.h ../gui/kernel/qnsthemeframe_mac_p.h ../gui/kernel/qnstitledframe_mac_p.h ../gui/kernel/qshortcutmap_p.h ../gui/kernel/qsoftkeymanager_common_p.h ../gui/kernel/qsoftkeymanager_p.h ../gui/kernel/qsoftkeymanager_s60_p.h ../gui/kernel/qsound_p.h ../gui/kernel/qstandardgestures_p.h ../gui/kernel/qt_cocoa_helpers_mac_p.h ../gui/kernel/qt_gui_pch.h ../gui/kernel/qt_mac_p.h ../gui/kernel/qt_s60_p.h ../gui/kernel/qt_x11_p.h ../gui/kernel/qwidget_p.h ../gui/kernel/qwidgetaction_p.h ../gui/kernel/qwinnativepangesturerecognizer_win_p.h ../gui/effects/qgraphicseffect_p.h ../gui/s60framework/qs60mainapplication_p.h ../gui/image/qbmphandler_p.h ../gui/image/qgifhandler_p.h ../gui/image/qicon_p.h ../gui/image/qiconloader_p.h ../gui/image/qimage_p.h ../gui/image/qimagepixmapcleanuphooks_p.h ../gui/image/qjpeghandler_p.h ../gui/image/qmnghandler_p.h ../gui/image/qnativeimage_p.h ../gui/image/qpaintengine_pic_p.h ../gui/image/qpicture_p.h ../gui/image/qpixmap_mac_p.h ../gui/image/qpixmap_raster_p.h ../gui/image/qpixmap_s60_p.h ../gui/image/qpixmap_x11_p.h ../gui/image/qpixmapcache_p.h ../gui/image/qpixmapdata_p.h ../gui/image/qpixmapdatafactory_p.h ../gui/image/qpixmapfilter_p.h ../gui/image/qpnghandler_p.h ../gui/image/qppmhandler_p.h ../gui/image/qtiffhandler_p.h ../gui/image/qxbmhandler_p.h ../gui/image/qxpmhandler_p.h ../gui/text/qabstractfontengine_p.h ../gui/text/qabstracttextdocumentlayout_p.h ../gui/text/qcssparser_p.h ../gui/text/qfont_p.h ../gui/text/qfontengine_ft_p.h ../gui/text/qfontengine_p.h ../gui/text/qfontengine_qpf_p.h ../gui/text/qfontengine_s60_p.h ../gui/text/qfontengine_win_p.h ../gui/text/qfontengine_x11_p.h ../gui/text/qfontengineglyphcache_p.h ../gui/text/qfontsubset_p.h ../gui/text/qfragmentmap_p.h ../gui/text/qstatictext_p.h ../gui/text/qtextcontrol_p.h ../gui/text/qtextcontrol_p_p.h ../gui/text/qtextcursor_p.h ../gui/text/qtextdocument_p.h ../gui/text/qtextdocumentfragment_p.h ../gui/text/qtextdocumentlayout_p.h ../gui/text/qtextengine_p.h ../gui/text/qtextformat_p.h ../gui/text/qtexthtmlparser_p.h ../gui/text/qtextimagehandler_p.h ../gui/text/qtextobject_p.h ../gui/text/qtextodfwriter_p.h ../gui/text/qtexttable_p.h ../gui/text/qzipreader_p.h ../gui/text/qzipwriter_p.h ../gui/itemviews/qabstractitemview_p.h ../gui/itemviews/qabstractproxymodel_p.h ../gui/itemviews/qbsptree_p.h ../gui/itemviews/qcolumnview_p.h ../gui/itemviews/qcolumnviewgrip_p.h ../gui/itemviews/qheaderview_p.h ../gui/itemviews/qitemeditorfactory_p.h ../gui/itemviews/qitemselectionmodel_p.h ../gui/itemviews/qlistview_p.h ../gui/itemviews/qlistwidget_p.h ../gui/itemviews/qproxymodel_p.h ../gui/itemviews/qstandarditemmodel_p.h ../gui/itemviews/qtableview_p.h ../gui/itemviews/qtablewidget_p.h ../gui/itemviews/qtreeview_p.h ../gui/itemviews/qtreewidget_p.h ../gui/itemviews/qtreewidgetitemiterator_p.h ../gui/itemviews/qwidgetitemdata_p.h ../gui/widgets/qabstractbutton_p.h ../gui/widgets/qabstractscrollarea_p.h ../gui/widgets/qabstractslider_p.h ../gui/widgets/qabstractspinbox_p.h ../gui/widgets/qcalendartextnavigator_p.h ../gui/widgets/qcocoamenu_mac_p.h ../gui/widgets/qcocoatoolbardelegate_mac_p.h ../gui/widgets/qcombobox_p.h ../gui/widgets/qdatetimeedit_p.h ../gui/widgets/qdockarealayout_p.h ../gui/widgets/qdockwidget_p.h ../gui/widgets/qeffects_p.h ../gui/widgets/qframe_p.h ../gui/widgets/qlabel_p.h ../gui/widgets/qlinecontrol_p.h ../gui/widgets/qlineedit_p.h ../gui/widgets/qmainwindowlayout_p.h ../gui/widgets/qmdiarea_p.h ../gui/widgets/qmdisubwindow_p.h ../gui/widgets/qmenu_p.h ../gui/widgets/qmenu_wince_resource_p.h ../gui/widgets/qmenubar_p.h ../gui/widgets/qplaintextedit_p.h ../gui/widgets/qpushbutton_p.h ../gui/widgets/qscrollarea_p.h ../gui/widgets/qsplitter_p.h ../gui/widgets/qtabbar_p.h ../gui/widgets/qtextedit_p.h ../gui/widgets/qtoolbar_p.h ../gui/widgets/qtoolbararealayout_p.h ../gui/widgets/qtoolbarextension_p.h ../gui/widgets/qtoolbarlayout_p.h ../gui/widgets/qtoolbarseparator_p.h ../gui/widgets/qwidgetanimator_p.h ../gui/widgets/qwidgetresizehandler_p.h ../gui/statemachine/qbasickeyeventtransition_p.h ../gui/statemachine/qbasicmouseeventtransition_p.h ../gui/util/qcompleter_p.h ../gui/util/qsystemtrayicon_p.h ../gui/util/qundostack_p.h ../gui/accessible/qaccessible_mac_p.h ../gui/styles/qcleanlooksstyle_p.h ../gui/styles/qcommonstyle_p.h ../gui/styles/qcommonstylepixmaps_p.h ../gui/styles/qgtkpainter_p.h ../gui/styles/qgtkstyle_p.h ../gui/styles/qmacstyle_mac_p.h ../gui/styles/qmacstylepixmaps_mac_p.h ../gui/styles/qmotifstyle_p.h ../gui/styles/qproxystyle_p.h ../gui/styles/qs60style_p.h ../gui/styles/qstyle_p.h ../gui/styles/qstylehelper_p.h ../gui/styles/qstylesheetstyle_p.h ../gui/styles/qwindowscestyle_p.h ../gui/styles/qwindowsmobilestyle_p.h ../gui/styles/qwindowsstyle_p.h ../gui/styles/qwindowsvistastyle_p.h ../gui/styles/qwindowsxpstyle_p.h ../gui/egl/qegl_p.h ../gui/egl/qeglcontext_p.h ../gui/egl/qeglproperties_p.h ../gui/inputmethod/qcoefepinputcontext_p.h ../gui/inputmethod/qinputcontext_p.h ../gui/inputmethod/qmacinputcontext_p.h ../gui/inputmethod/qwininputcontext_p.h ../gui/inputmethod/qwsinputcontext_p.h ../gui/inputmethod/qximinputcontext_p.h ../gui/painting/qbackingstore_p.h ../gui/painting/qbezier_p.h ../gui/painting/qblendfunctions_p.h ../gui/painting/qcolor_p.h ../gui/painting/qcssutil_p.h ../gui/painting/qcups_p.h ../gui/painting/qdatabuffer_p.h ../gui/painting/qdrawhelper_arm_simd_p.h ../gui/painting/qdrawhelper_mmx_p.h ../gui/painting/qdrawhelper_neon_p.h ../gui/painting/qdrawhelper_p.h ../gui/painting/qdrawhelper_sse_p.h ../gui/painting/qdrawhelper_x86_p.h ../gui/painting/qdrawingprimitive_sse2_p.h ../gui/painting/qemulationpaintengine_p.h ../gui/painting/qfixed_p.h ../gui/painting/qgraphicssystem_mac_p.h ../gui/painting/qgraphicssystem_p.h ../gui/painting/qgraphicssystem_qws_p.h ../gui/painting/qgraphicssystem_raster_p.h ../gui/painting/qgraphicssystem_runtime_p.h ../gui/painting/qgraphicssystemfactory_p.h ../gui/painting/qgraphicssystemplugin_p.h ../gui/painting/qgrayraster_p.h ../gui/painting/qimagescale_p.h ../gui/painting/qmath_p.h ../gui/painting/qmemrotate_p.h ../gui/painting/qoutlinemapper_p.h ../gui/painting/qpaintbuffer_p.h ../gui/painting/qpaintengine_alpha_p.h ../gui/painting/qpaintengine_mac_p.h ../gui/painting/qpaintengine_p.h ../gui/painting/qpaintengine_preview_p.h ../gui/painting/qpaintengine_raster_p.h ../gui/painting/qpaintengine_s60_p.h ../gui/painting/qpaintengine_x11_p.h ../gui/painting/qpaintengineex_p.h ../gui/painting/qpainter_p.h ../gui/painting/qpainterpath_p.h ../gui/painting/qpathclipper_p.h ../gui/painting/qpdf_p.h ../gui/painting/qpen_p.h ../gui/painting/qpolygonclipper_p.h ../gui/painting/qprintengine_mac_p.h ../gui/painting/qprintengine_pdf_p.h ../gui/painting/qprintengine_ps_p.h ../gui/painting/qprintengine_qws_p.h ../gui/painting/qprintengine_win_p.h ../gui/painting/qprinter_p.h ../gui/painting/qprinterinfo_unix_p.h ../gui/painting/qrasterdefs_p.h ../gui/painting/qrasterizer_p.h ../gui/painting/qstroker_p.h ../gui/painting/qtessellator_p.h ../gui/painting/qtextureglyphcache_p.h ../gui/painting/qvectorpath_p.h ../gui/painting/qwindowsurface_mac_p.h ../gui/painting/qwindowsurface_p.h ../gui/painting/qwindowsurface_qws_p.h ../gui/painting/qwindowsurface_raster_p.h ../gui/painting/qwindowsurface_s60_p.h ../gui/painting/qwindowsurface_x11_p.h -+SYNCQT.HEADER_FILES = ../gui/dialogs/qabstractpagesetupdialog.h ../gui/dialogs/qabstractprintdialog.h ../gui/dialogs/qcolordialog.h ../gui/dialogs/qdialog.h ../gui/dialogs/qerrormessage.h ../gui/dialogs/qfiledialog.h ../gui/dialogs/qfilesystemmodel.h ../gui/dialogs/qfontdialog.h ../gui/dialogs/qinputdialog.h ../gui/dialogs/qmessagebox.h ../gui/dialogs/qpagesetupdialog.h ../gui/dialogs/qprintdialog.h ../gui/dialogs/qprintpreviewdialog.h ../gui/dialogs/qprogressdialog.h ../gui/dialogs/qwizard.h ../gui/embedded/qcopchannel_qws.h ../gui/embedded/qdecoration_qws.h ../gui/embedded/qdecorationdefault_qws.h ../gui/embedded/qdecorationfactory_qws.h ../gui/embedded/qdecorationplugin_qws.h ../gui/embedded/qdecorationstyled_qws.h ../gui/embedded/qdecorationwindows_qws.h ../gui/embedded/qdirectpainter_qws.h ../gui/embedded/qkbd_qws.h ../gui/embedded/qkbddriverfactory_qws.h ../gui/embedded/qkbddriverplugin_qws.h ../gui/embedded/qkbdlinuxinput_qws.h ../gui/embedded/qkbdqnx_qws.h ../gui/embedded/qkbdtty_qws.h ../gui/embedded/qkbdum_qws.h ../gui/embedded/qkbdvfb_qws.h ../gui/embedded/qmouse_qws.h ../gui/embedded/qmousedriverfactory_qws.h ../gui/embedded/qmousedriverplugin_qws.h ../gui/embedded/qmouselinuxinput_qws.h ../gui/embedded/qmouselinuxtp_qws.h ../gui/embedded/qmousepc_qws.h ../gui/embedded/qmouseqnx_qws.h ../gui/embedded/qmousetslib_qws.h ../gui/embedded/qmousevfb_qws.h ../gui/embedded/qscreen_qws.h ../gui/embedded/qscreendriverfactory_qws.h ../gui/embedded/qscreendriverplugin_qws.h ../gui/embedded/qscreenlinuxfb_qws.h ../gui/embedded/qscreenproxy_qws.h ../gui/embedded/qscreenqnx_qws.h ../gui/embedded/qscreentransformed_qws.h ../gui/embedded/qscreenvfb_qws.h ../gui/embedded/qsoundqss_qws.h ../gui/embedded/qtransportauth_qws.h ../gui/embedded/qtransportauthdefs_qws.h ../gui/embedded/qvfbhdr.h ../gui/embedded/qwindowsystem_qws.h ../gui/embedded/qwscursor_qws.h ../gui/embedded/qwsdisplay_qws.h ../gui/embedded/qwsembedwidget.h ../gui/embedded/qwsevent_qws.h ../gui/embedded/qwsmanager_qws.h ../gui/embedded/qwsproperty_qws.h ../gui/embedded/qwsprotocolitem_qws.h ../gui/embedded/qwssocket_qws.h ../gui/embedded/qwsutils_qws.h ../gui/graphicsview/qgraphicsanchorlayout.h ../gui/graphicsview/qgraphicsgridlayout.h ../gui/graphicsview/qgraphicsitem.h ../gui/graphicsview/qgraphicsitemanimation.h ../gui/graphicsview/qgraphicslayout.h ../gui/graphicsview/qgraphicslayoutitem.h ../gui/graphicsview/qgraphicslinearlayout.h ../gui/graphicsview/qgraphicsproxywidget.h ../gui/graphicsview/qgraphicsscene.h ../gui/graphicsview/qgraphicssceneevent.h ../gui/graphicsview/qgraphicstransform.h ../gui/graphicsview/qgraphicsview.h ../gui/graphicsview/qgraphicswidget.h ../gui/kernel/qaction.h ../gui/kernel/qactiongroup.h ../gui/kernel/qapplication.h ../gui/kernel/qboxlayout.h ../gui/kernel/qclipboard.h ../gui/kernel/qcursor.h ../gui/kernel/qdesktopwidget.h ../gui/kernel/qdrag.h ../gui/kernel/qevent.h ../gui/kernel/qformlayout.h ../gui/kernel/qgesture.h ../gui/kernel/qgesturerecognizer.h ../gui/kernel/qgridlayout.h ../gui/kernel/qguifunctions_wince.h ../gui/kernel/qkeysequence.h ../gui/kernel/qlayout.h ../gui/kernel/qlayoutitem.h ../gui/kernel/qmacdefines_mac.h ../gui/kernel/qmime.h ../gui/kernel/qpalette.h ../gui/kernel/qsessionmanager.h ../gui/kernel/qshortcut.h ../gui/kernel/qsizepolicy.h ../gui/kernel/qsound.h ../gui/kernel/qstackedlayout.h ../gui/kernel/qtooltip.h ../gui/kernel/qwhatsthis.h ../gui/kernel/qwidget.h ../gui/kernel/qwidgetaction.h ../gui/kernel/qwindowdefs.h ../gui/kernel/qwindowdefs_win.h ../gui/kernel/qx11embed_x11.h ../gui/kernel/qx11info_x11.h ../gui/effects/qgraphicseffect.h ../gui/s60framework/qs60mainapplication.h ../gui/s60framework/qs60mainappui.h ../gui/s60framework/qs60maindocument.h ../gui/math3d/qgenericmatrix.h ../gui/math3d/qmatrix4x4.h ../gui/math3d/qquaternion.h ../gui/math3d/qvector2d.h ../gui/math3d/qvector3d.h ../gui/math3d/qvector4d.h ../gui/image/qbitmap.h ../gui/image/qicon.h ../gui/image/qiconengine.h ../gui/image/qiconengineplugin.h ../gui/image/qimage.h ../gui/image/qimageiohandler.h ../gui/image/qimagereader.h ../gui/image/qimagewriter.h ../gui/image/qmovie.h ../gui/image/qpicture.h ../gui/image/qpictureformatplugin.h ../gui/image/qpixmap.h ../gui/image/qpixmapcache.h ../gui/symbian/qsymbianevent.h ../gui/text/qabstractfontengine_qws.h ../gui/text/qabstracttextdocumentlayout.h ../gui/text/qfont.h ../gui/text/qfontdatabase.h ../gui/text/qfontinfo.h ../gui/text/qfontmetrics.h ../gui/text/qstatictext.h ../gui/text/qsyntaxhighlighter.h ../gui/text/qtextcursor.h ../gui/text/qtextdocument.h ../gui/text/qtextdocumentfragment.h ../gui/text/qtextdocumentwriter.h ../gui/text/qtextformat.h ../gui/text/qtextlayout.h ../gui/text/qtextlist.h ../gui/text/qtextobject.h ../gui/text/qtextoption.h ../gui/text/qtexttable.h ../gui/itemviews/qabstractitemdelegate.h ../gui/itemviews/qabstractitemview.h ../gui/itemviews/qabstractproxymodel.h ../gui/itemviews/qcolumnview.h ../gui/itemviews/qdatawidgetmapper.h ../gui/itemviews/qdirmodel.h ../gui/itemviews/qfileiconprovider.h ../gui/itemviews/qheaderview.h ../gui/itemviews/qitemdelegate.h ../gui/itemviews/qitemeditorfactory.h ../gui/itemviews/qitemselectionmodel.h ../gui/itemviews/qlistview.h ../gui/itemviews/qlistwidget.h ../gui/itemviews/qproxymodel.h ../gui/itemviews/qsortfilterproxymodel.h ../gui/itemviews/qstandarditemmodel.h ../gui/itemviews/qstringlistmodel.h ../gui/itemviews/qstyleditemdelegate.h ../gui/itemviews/qtableview.h ../gui/itemviews/qtablewidget.h ../gui/itemviews/qtreeview.h ../gui/itemviews/qtreewidget.h ../gui/itemviews/qtreewidgetitemiterator.h ../gui/widgets/qabstractbutton.h ../gui/widgets/qabstractscrollarea.h ../gui/widgets/qabstractslider.h ../gui/widgets/qabstractspinbox.h ../gui/widgets/qbuttongroup.h ../gui/widgets/qcalendarwidget.h ../gui/widgets/qcheckbox.h ../gui/widgets/qcombobox.h ../gui/widgets/qcommandlinkbutton.h ../gui/widgets/qdatetimeedit.h ../gui/widgets/qdial.h ../gui/widgets/qdialogbuttonbox.h ../gui/widgets/qdockwidget.h ../gui/widgets/qfocusframe.h ../gui/widgets/qfontcombobox.h ../gui/widgets/qframe.h ../gui/widgets/qgroupbox.h ../gui/widgets/qlabel.h ../gui/widgets/qlcdnumber.h ../gui/widgets/qlineedit.h ../gui/widgets/qmaccocoaviewcontainer_mac.h ../gui/widgets/qmacnativewidget_mac.h ../gui/widgets/qmainwindow.h ../gui/widgets/qmdiarea.h ../gui/widgets/qmdisubwindow.h ../gui/widgets/qmenu.h ../gui/widgets/qmenubar.h ../gui/widgets/qmenudata.h ../gui/widgets/qplaintextedit.h ../gui/widgets/qprintpreviewwidget.h ../gui/widgets/qprogressbar.h ../gui/widgets/qpushbutton.h ../gui/widgets/qradiobutton.h ../gui/widgets/qrubberband.h ../gui/widgets/qscrollarea.h ../gui/widgets/qscrollbar.h ../gui/widgets/qsizegrip.h ../gui/widgets/qslider.h ../gui/widgets/qspinbox.h ../gui/widgets/qsplashscreen.h ../gui/widgets/qsplitter.h ../gui/widgets/qstackedwidget.h ../gui/widgets/qstatusbar.h ../gui/widgets/qtabbar.h ../gui/widgets/qtabwidget.h ../gui/widgets/qtextbrowser.h ../gui/widgets/qtextedit.h ../gui/widgets/qtoolbar.h ../gui/widgets/qtoolbox.h ../gui/widgets/qtoolbutton.h ../gui/widgets/qvalidator.h ../gui/widgets/qworkspace.h ../gui/statemachine/qkeyeventtransition.h ../gui/statemachine/qmouseeventtransition.h ../gui/util/qcompleter.h ../gui/util/qdesktopservices.h ../gui/util/qsystemtrayicon.h ../gui/util/qundogroup.h ../gui/util/qundostack.h ../gui/util/qundoview.h ../gui/accessible/qaccessible.h ../gui/accessible/qaccessible2.h ../gui/accessible/qaccessiblebridge.h ../gui/accessible/qaccessibleobject.h ../gui/accessible/qaccessibleplugin.h ../gui/accessible/qaccessiblewidget.h ../gui/styles/qcdestyle.h ../gui/styles/qcleanlooksstyle.h ../gui/styles/qcommonstyle.h ../gui/styles/qgtkstyle.h ../gui/styles/qmacstyle_mac.h ../gui/styles/qmotifstyle.h ../gui/styles/qplastiquestyle.h ../gui/styles/qproxystyle.h ../gui/styles/qs60style.h ../gui/styles/qstyle.h ../gui/styles/qstylefactory.h ../gui/styles/qstyleoption.h ../gui/styles/qstyleplugin.h ../gui/styles/qwindowscestyle.h ../gui/styles/qwindowsmobilestyle.h ../gui/styles/qwindowsstyle.h ../gui/styles/qwindowsvistastyle.h ../gui/styles/qwindowsxpstyle.h ../gui/inputmethod/qinputcontext.h ../gui/inputmethod/qinputcontextfactory.h ../gui/inputmethod/qinputcontextplugin.h ../gui/painting/qbrush.h ../gui/painting/qcolor.h ../gui/painting/qcolormap.h ../gui/painting/qdrawutil.h ../gui/painting/qmatrix.h ../gui/painting/qpaintdevice.h ../gui/painting/qpaintengine.h ../gui/painting/qpainter.h ../gui/painting/qpainterpath.h ../gui/painting/qpen.h ../gui/painting/qpolygon.h ../gui/painting/qprintengine.h ../gui/painting/qprinter.h ../gui/painting/qprinterinfo.h ../gui/painting/qregion.h ../gui/painting/qrgb.h ../gui/painting/qstylepainter.h ../gui/painting/qtransform.h ../gui/painting/qwmatrix.h ../../include/QtGui/QtGui ../gui/kernel/qwindowdefs_haiku.h ../gui/kernel/qwidget_haiku.h ../gui/util/qsystemtrayicon_haiku.h -+SYNCQT.HEADER_CLASSES = ../../include/QtGui/QAbstractPageSetupDialog ../../include/QtGui/QAbstractPrintDialog ../../include/QtGui/QColorDialog ../../include/QtGui/QDialog ../../include/QtGui/QErrorMessage ../../include/QtGui/QFileDialog ../../include/QtGui/QFileSystemModel ../../include/QtGui/QFontDialog ../../include/QtGui/QInputDialog ../../include/QtGui/QMessageBox ../../include/QtGui/QPageSetupDialog ../../include/QtGui/QUnixPrintWidget ../../include/QtGui/QPrintDialog ../../include/QtGui/QPrintPreviewDialog ../../include/QtGui/QProgressDialog ../../include/QtGui/QWizard ../../include/QtGui/QWizardPage ../../include/QtGui/QCopChannel ../../include/QtGui/QDecorationAction ../../include/QtGui/QDecoration ../../include/QtGui/QDecorationDefault ../../include/QtGui/QDecorationFactory ../../include/QtGui/QDecorationFactoryInterface ../../include/QtGui/QDecorationPlugin ../../include/QtGui/QDecorationStyled ../../include/QtGui/QDecorationWindows ../../include/QtGui/QDirectPainter ../../include/QtGui/QWSKeyboardHandler ../../include/QtGui/QKbdDriverFactory ../../include/QtGui/QWSKeyboardHandlerFactoryInterface ../../include/QtGui/QKbdDriverPlugin ../../include/QtGui/QWSLinuxInputKeyboardHandler ../../include/QtGui/QWSQnxKeyboardHandler ../../include/QtGui/QWSTtyKeyboardHandler ../../include/QtGui/QWSUmKeyboardHandler ../../include/QtGui/QVFbKeyboardHandler ../../include/QtGui/QWSPointerCalibrationData ../../include/QtGui/QWSMouseHandler ../../include/QtGui/QWSCalibratedMouseHandler ../../include/QtGui/QMouseDriverFactory ../../include/QtGui/QWSMouseHandlerFactoryInterface ../../include/QtGui/QMouseDriverPlugin ../../include/QtGui/QWSLinuxInputMouseHandler ../../include/QtGui/QWSLinuxTPMouseHandler ../../include/QtGui/QWSPcMouseHandler ../../include/QtGui/QQnxMouseHandler ../../include/QtGui/QWSTslibMouseHandler ../../include/QtGui/QVFbMouseHandler ../../include/QtGui/QScreenCursor ../../include/QtGui/QPoolEntry ../../include/QtGui/QScreen ../../include/QtGui/QScreenDriverFactory ../../include/QtGui/QScreenDriverFactoryInterface ../../include/QtGui/QScreenDriverPlugin ../../include/QtGui/QLinuxFb_Shared ../../include/QtGui/QLinuxFbScreen ../../include/QtGui/QProxyScreenCursor ../../include/QtGui/QProxyScreen ../../include/QtGui/QQnxScreen ../../include/QtGui/QTransformedScreen ../../include/QtGui/QVFbScreen ../../include/QtGui/QWSSoundServer ../../include/QtGui/QWSSoundClient ../../include/QtGui/QWSSoundServerSocket ../../include/QtGui/QTransportAuth ../../include/QtGui/QAuthDevice ../../include/QtGui/QVFbHeader ../../include/QtGui/QVFbKeyData ../../include/QtGui/QWSInternalWindowInfo ../../include/QtGui/QWSScreenSaver ../../include/QtGui/QWSWindow ../../include/QtGui/QWSServer ../../include/QtGui/QWSInputMethod ../../include/QtGui/QWSCursorMap ../../include/QtGui/QWSClient ../../include/QtGui/QWSCursor ../../include/QtGui/QWSWindowInfo ../../include/QtGui/QWSDisplay ../../include/QtGui/QWSEmbedWidget ../../include/QtGui/QWSEvent ../../include/QtGui/QWSManager ../../include/QtGui/QWSPropertyManager ../../include/QtGui/QWSProtocolItem ../../include/QtGui/QWSSocket ../../include/QtGui/QWSServerSocket ../../include/QtGui/QGraphicsAnchor ../../include/QtGui/QGraphicsAnchorLayout ../../include/QtGui/QGraphicsGridLayout ../../include/QtGui/QGraphicsItem ../../include/QtGui/QGraphicsObject ../../include/QtGui/QAbstractGraphicsShapeItem ../../include/QtGui/QGraphicsPathItem ../../include/QtGui/QGraphicsRectItem ../../include/QtGui/QGraphicsEllipseItem ../../include/QtGui/QGraphicsPolygonItem ../../include/QtGui/QGraphicsLineItem ../../include/QtGui/QGraphicsPixmapItem ../../include/QtGui/QGraphicsTextItem ../../include/QtGui/QGraphicsSimpleTextItem ../../include/QtGui/QGraphicsItemGroup ../../include/QtGui/QGraphicsItemAnimation ../../include/QtGui/QGraphicsLayout ../../include/QtGui/QGraphicsLayoutItem ../../include/QtGui/QGraphicsLinearLayout ../../include/QtGui/QGraphicsProxyWidget ../../include/QtGui/QGraphicsScene ../../include/QtGui/QGraphicsSceneEvent ../../include/QtGui/QGraphicsSceneMouseEvent ../../include/QtGui/QGraphicsSceneWheelEvent ../../include/QtGui/QGraphicsSceneContextMenuEvent ../../include/QtGui/QGraphicsSceneHoverEvent ../../include/QtGui/QGraphicsSceneHelpEvent ../../include/QtGui/QGraphicsSceneDragDropEvent ../../include/QtGui/QGraphicsSceneResizeEvent ../../include/QtGui/QGraphicsSceneMoveEvent ../../include/QtGui/QGraphicsTransform ../../include/QtGui/QGraphicsScale ../../include/QtGui/QGraphicsRotation ../../include/QtGui/QGraphicsView ../../include/QtGui/QGraphicsWidget ../../include/QtGui/QAction ../../include/QtGui/QActionGroup ../../include/QtGui/QApplication ../../include/QtGui/QBoxLayout ../../include/QtGui/QHBoxLayout ../../include/QtGui/QVBoxLayout ../../include/QtGui/QClipboard ../../include/QtGui/QCursor ../../include/QtGui/QCursorShape ../../include/QtGui/QDesktopWidget ../../include/QtGui/QDrag ../../include/QtGui/QtEvents ../../include/QtGui/QInputEvent ../../include/QtGui/QMouseEvent ../../include/QtGui/QHoverEvent ../../include/QtGui/QWheelEvent ../../include/QtGui/QTabletEvent ../../include/QtGui/QKeyEvent ../../include/QtGui/QFocusEvent ../../include/QtGui/QPaintEvent ../../include/QtGui/QUpdateLaterEvent ../../include/QtGui/QMoveEvent ../../include/QtGui/QResizeEvent ../../include/QtGui/QCloseEvent ../../include/QtGui/QIconDragEvent ../../include/QtGui/QShowEvent ../../include/QtGui/QHideEvent ../../include/QtGui/QContextMenuEvent ../../include/QtGui/QInputMethodEvent ../../include/QtGui/QDropEvent ../../include/QtGui/QDragMoveEvent ../../include/QtGui/QDragEnterEvent ../../include/QtGui/QDragResponseEvent ../../include/QtGui/QDragLeaveEvent ../../include/QtGui/QHelpEvent ../../include/QtGui/QStatusTipEvent ../../include/QtGui/QWhatsThisClickedEvent ../../include/QtGui/QActionEvent ../../include/QtGui/QFileOpenEvent ../../include/QtGui/QToolBarChangeEvent ../../include/QtGui/QShortcutEvent ../../include/QtGui/QClipboardEvent ../../include/QtGui/QWindowStateChangeEvent ../../include/QtGui/QMenubarUpdatedEvent ../../include/QtGui/QTouchEvent ../../include/QtGui/QGestureEvent ../../include/QtGui/QFormLayout ../../include/QtGui/QGesture ../../include/QtGui/QPanGesture ../../include/QtGui/QPinchGesture ../../include/QtGui/QSwipeGesture ../../include/QtGui/QTapGesture ../../include/QtGui/QTapAndHoldGesture ../../include/QtGui/QGestureRecognizer ../../include/QtGui/QGridLayout ../../include/QtGui/QKeySequence ../../include/QtGui/QLayoutIterator ../../include/QtGui/QLayout ../../include/QtGui/QLayoutItem ../../include/QtGui/QSpacerItem ../../include/QtGui/QWidgetItem ../../include/QtGui/QWidgetItemV2 ../../include/QtGui/QMimeSource ../../include/QtGui/QWindowsMime ../../include/QtGui/QMacMime ../../include/QtGui/QMacPasteboardMime ../../include/QtGui/QPalette ../../include/QtGui/QColorGroup ../../include/QtGui/QSessionManager ../../include/QtGui/QShortcut ../../include/QtGui/QSizePolicy ../../include/QtGui/QSound ../../include/QtGui/QStackedLayout ../../include/QtGui/QToolTip ../../include/QtGui/QWhatsThis ../../include/QtGui/QWidgetData ../../include/QtGui/QWidget ../../include/QtGui/QWidgetAction ../../include/QtGui/QWidgetList ../../include/QtGui/QWidgetMapper ../../include/QtGui/QWidgetSet ../../include/QtGui/QX11EmbedWidget ../../include/QtGui/QX11EmbedContainer ../../include/QtGui/QX11Info ../../include/QtGui/QGraphicsEffect ../../include/QtGui/QGraphicsColorizeEffect ../../include/QtGui/QGraphicsBlurEffect ../../include/QtGui/QGraphicsDropShadowEffect ../../include/QtGui/QGraphicsOpacityEffect ../../include/QtGui/QS60MainApplicationBase ../../include/QtGui/QS60MainApplication ../../include/QtGui/QS60MainAppUiBase ../../include/QtGui/QS60StubAknAppUiBase ../../include/QtGui/QS60StubMEikStatusPaneObserver ../../include/QtGui/QS60StubMAknTouchPaneObserver ../../include/QtGui/QS60StubAknAppUi ../../include/QtGui/QS60MainAppUi ../../include/QtGui/QS60MainDocumentBase ../../include/QtGui/QS60MainDocument ../../include/QtGui/QGenericMatrix ../../include/QtGui/QMatrix2x2 ../../include/QtGui/QMatrix2x3 ../../include/QtGui/QMatrix2x4 ../../include/QtGui/QMatrix3x2 ../../include/QtGui/QMatrix3x3 ../../include/QtGui/QMatrix3x4 ../../include/QtGui/QMatrix4x2 ../../include/QtGui/QMatrix4x3 ../../include/QtGui/QMatrix4x4 ../../include/QtGui/QQuaternion ../../include/QtGui/QVector2D ../../include/QtGui/QVector3D ../../include/QtGui/QVector4D ../../include/QtGui/QBitmap ../../include/QtGui/QIcon ../../include/QtGui/QIconSet ../../include/QtGui/QIconEngine ../../include/QtGui/QIconEngineV2 ../../include/QtGui/QIconEngineFactoryInterface ../../include/QtGui/QIconEnginePlugin ../../include/QtGui/QIconEngineFactoryInterfaceV2 ../../include/QtGui/QIconEnginePluginV2 ../../include/QtGui/QImageTextKeyLang ../../include/QtGui/QImage ../../include/QtGui/QImageIOHandler ../../include/QtGui/QImageIOHandlerFactoryInterface ../../include/QtGui/QImageIOPlugin ../../include/QtGui/QImageReader ../../include/QtGui/QImageWriter ../../include/QtGui/QMovie ../../include/QtGui/QPicture ../../include/QtGui/QPictureIO ../../include/QtGui/QPictureFormatInterface ../../include/QtGui/QPictureFormatPlugin ../../include/QtGui/QPixmap ../../include/QtGui/QPixmapCache ../../include/QtGui/QSymbianEvent ../../include/QtGui/QFontEngineInfo ../../include/QtGui/QFontEngineFactoryInterface ../../include/QtGui/QFontEnginePlugin ../../include/QtGui/QAbstractFontEngine ../../include/QtGui/QAbstractTextDocumentLayout ../../include/QtGui/QTextObjectInterface ../../include/QtGui/QFont ../../include/QtGui/QFontDatabase ../../include/QtGui/QFontInfo ../../include/QtGui/QFontMetrics ../../include/QtGui/QFontMetricsF ../../include/QtGui/QStaticText ../../include/QtGui/QSyntaxHighlighter ../../include/QtGui/QTextCursor ../../include/QtGui/QAbstractUndoItem ../../include/QtGui/QTextDocument ../../include/QtGui/QTextDocumentFragment ../../include/QtGui/QTextDocumentWriter ../../include/QtGui/QTextLength ../../include/QtGui/QTextFormat ../../include/QtGui/QTextCharFormat ../../include/QtGui/QTextBlockFormat ../../include/QtGui/QTextListFormat ../../include/QtGui/QTextImageFormat ../../include/QtGui/QTextFrameFormat ../../include/QtGui/QTextTableFormat ../../include/QtGui/QTextTableCellFormat ../../include/QtGui/QTextInlineObject ../../include/QtGui/QTextLayout ../../include/QtGui/QTextLine ../../include/QtGui/QTextList ../../include/QtGui/QTextObject ../../include/QtGui/QTextBlockGroup ../../include/QtGui/QTextFrameLayoutData ../../include/QtGui/QTextFrame ../../include/QtGui/QTextBlockUserData ../../include/QtGui/QTextBlock ../../include/QtGui/QTextFragment ../../include/QtGui/QTextOption ../../include/QtGui/QTextTableCell ../../include/QtGui/QTextTable ../../include/QtGui/QAbstractItemDelegate ../../include/QtGui/QAbstractItemView ../../include/QtGui/QAbstractProxyModel ../../include/QtGui/QColumnView ../../include/QtGui/QDataWidgetMapper ../../include/QtGui/QDirModel ../../include/QtGui/QFileIconProvider ../../include/QtGui/QHeaderView ../../include/QtGui/QItemDelegate ../../include/QtGui/QItemEditorCreatorBase ../../include/QtGui/QItemEditorCreator ../../include/QtGui/QStandardItemEditorCreator ../../include/QtGui/QItemEditorFactory ../../include/QtGui/QItemSelectionRange ../../include/QtGui/QItemSelectionModel ../../include/QtGui/QItemSelection ../../include/QtGui/QListView ../../include/QtGui/QListWidgetItem ../../include/QtGui/QListWidget ../../include/QtGui/QProxyModel ../../include/QtGui/QSortFilterProxyModel ../../include/QtGui/QStandardItem ../../include/QtGui/QStandardItemModel ../../include/QtGui/QStringListModel ../../include/QtGui/QStyledItemDelegate ../../include/QtGui/QTableView ../../include/QtGui/QTableWidgetSelectionRange ../../include/QtGui/QTableWidgetItem ../../include/QtGui/QTableWidget ../../include/QtGui/QTreeView ../../include/QtGui/QTreeWidgetItem ../../include/QtGui/QTreeWidget ../../include/QtGui/QTreeWidgetItemIterator ../../include/QtGui/QAbstractButton ../../include/QtGui/QAbstractScrollArea ../../include/QtGui/QAbstractSlider ../../include/QtGui/QAbstractSpinBox ../../include/QtGui/QButtonGroup ../../include/QtGui/QCalendarWidget ../../include/QtGui/QCheckBox ../../include/QtGui/QComboBox ../../include/QtGui/QCommandLinkButton ../../include/QtGui/QDateTimeEdit ../../include/QtGui/QTimeEdit ../../include/QtGui/QDateEdit ../../include/QtGui/QDial ../../include/QtGui/QDialogButtonBox ../../include/QtGui/QDockWidget ../../include/QtGui/QFocusFrame ../../include/QtGui/QFontComboBox ../../include/QtGui/QFrame ../../include/QtGui/QGroupBox ../../include/QtGui/QLabel ../../include/QtGui/QLCDNumber ../../include/QtGui/QLineEdit ../../include/QtGui/QMacCocoaViewContainer ../../include/QtGui/QMacNativeWidget ../../include/QtGui/QMainWindow ../../include/QtGui/QMdiArea ../../include/QtGui/QMdiSubWindow ../../include/QtGui/QMenu ../../include/QtGui/QMenuBar ../../include/QtGui/QMenuItem ../../include/QtGui/QPlainTextEdit ../../include/QtGui/QPlainTextDocumentLayout ../../include/QtGui/QPrintPreviewWidget ../../include/QtGui/QProgressBar ../../include/QtGui/QPushButton ../../include/QtGui/QRadioButton ../../include/QtGui/QRubberBand ../../include/QtGui/QScrollArea ../../include/QtGui/QScrollBar ../../include/QtGui/QSizeGrip ../../include/QtGui/QSlider ../../include/QtGui/QSpinBox ../../include/QtGui/QDoubleSpinBox ../../include/QtGui/QSplashScreen ../../include/QtGui/QSplitter ../../include/QtGui/QSplitterHandle ../../include/QtGui/QStackedWidget ../../include/QtGui/QStatusBar ../../include/QtGui/QTabBar ../../include/QtGui/QTabWidget ../../include/QtGui/QTextBrowser ../../include/QtGui/QTextEdit ../../include/QtGui/QToolBar ../../include/QtGui/QToolBox ../../include/QtGui/QToolButton ../../include/QtGui/QValidator ../../include/QtGui/QIntValidator ../../include/QtGui/QDoubleValidator ../../include/QtGui/QRegExpValidator ../../include/QtGui/QWorkspace ../../include/QtGui/QKeyEventTransition ../../include/QtGui/QMouseEventTransition ../../include/QtGui/QCompleter ../../include/QtGui/QDesktopServices ../../include/QtGui/QSystemTrayIcon ../../include/QtGui/QUndoGroup ../../include/QtGui/QUndoCommand ../../include/QtGui/QUndoStack ../../include/QtGui/QUndoView ../../include/QtGui/QAccessible ../../include/QtGui/QAccessibleInterface ../../include/QtGui/QAccessibleInterfaceEx ../../include/QtGui/QAccessibleEvent ../../include/QtGui/QAccessible2Interface ../../include/QtGui/QAccessibleTextInterface ../../include/QtGui/QAccessibleEditableTextInterface ../../include/QtGui/QAccessibleSimpleEditableTextInterface ../../include/QtGui/QAccessibleValueInterface ../../include/QtGui/QAccessibleTableInterface ../../include/QtGui/QAccessibleActionInterface ../../include/QtGui/QAccessibleImageInterface ../../include/QtGui/QAccessibleBridge ../../include/QtGui/QAccessibleBridgeFactoryInterface ../../include/QtGui/QAccessibleBridgePlugin ../../include/QtGui/QAccessibleObject ../../include/QtGui/QAccessibleObjectEx ../../include/QtGui/QAccessibleApplication ../../include/QtGui/QAccessibleFactoryInterface ../../include/QtGui/QAccessiblePlugin ../../include/QtGui/QAccessibleWidget ../../include/QtGui/QAccessibleWidgetEx ../../include/QtGui/QCDEStyle ../../include/QtGui/QCleanlooksStyle ../../include/QtGui/QCommonStyle ../../include/QtGui/QGtkStyle ../../include/QtGui/QMacStyle ../../include/QtGui/QMotifStyle ../../include/QtGui/QPlastiqueStyle ../../include/QtGui/QProxyStyle ../../include/QtGui/QS60Style ../../include/QtGui/QStyle ../../include/QtGui/QStyleFactory ../../include/QtGui/QStyleOption ../../include/QtGui/QStyleOptionFocusRect ../../include/QtGui/QStyleOptionFrame ../../include/QtGui/QStyleOptionFrameV2 ../../include/QtGui/QStyleOptionFrameV3 ../../include/QtGui/QStyleOptionTabWidgetFrame ../../include/QtGui/QStyleOptionTabWidgetFrameV2 ../../include/QtGui/QStyleOptionTabBarBase ../../include/QtGui/QStyleOptionTabBarBaseV2 ../../include/QtGui/QStyleOptionHeader ../../include/QtGui/QStyleOptionButton ../../include/QtGui/QStyleOptionTab ../../include/QtGui/QStyleOptionTabV2 ../../include/QtGui/QStyleOptionTabV3 ../../include/QtGui/QStyleOptionToolBar ../../include/QtGui/QStyleOptionProgressBar ../../include/QtGui/QStyleOptionProgressBarV2 ../../include/QtGui/QStyleOptionMenuItem ../../include/QtGui/QStyleOptionQ3ListViewItem ../../include/QtGui/QStyleOptionQ3DockWindow ../../include/QtGui/QStyleOptionDockWidget ../../include/QtGui/QStyleOptionDockWidgetV2 ../../include/QtGui/QStyleOptionViewItem ../../include/QtGui/QStyleOptionViewItemV2 ../../include/QtGui/QStyleOptionViewItemV3 ../../include/QtGui/QStyleOptionViewItemV4 ../../include/QtGui/QStyleOptionToolBox ../../include/QtGui/QStyleOptionToolBoxV2 ../../include/QtGui/QStyleOptionRubberBand ../../include/QtGui/QStyleOptionComplex ../../include/QtGui/QStyleOptionSlider ../../include/QtGui/QStyleOptionSpinBox ../../include/QtGui/QStyleOptionQ3ListView ../../include/QtGui/QStyleOptionToolButton ../../include/QtGui/QStyleOptionComboBox ../../include/QtGui/QStyleOptionTitleBar ../../include/QtGui/QStyleOptionGroupBox ../../include/QtGui/QStyleOptionSizeGrip ../../include/QtGui/QStyleOptionGraphicsItem ../../include/QtGui/QStyleHintReturn ../../include/QtGui/QStyleHintReturnMask ../../include/QtGui/QStyleHintReturnVariant ../../include/QtGui/QStyleFactoryInterface ../../include/QtGui/QStylePlugin ../../include/QtGui/QWindowsCEStyle ../../include/QtGui/QWindowsMobileStyle ../../include/QtGui/QWindowsStyle ../../include/QtGui/QWindowsVistaStyle ../../include/QtGui/QWindowsXPStyle ../../include/QtGui/QInputContext ../../include/QtGui/QInputContextFactory ../../include/QtGui/QInputContextFactoryInterface ../../include/QtGui/QInputContextPlugin ../../include/QtGui/QBrush ../../include/QtGui/QBrushData ../../include/QtGui/QGradientStop ../../include/QtGui/QGradientStops ../../include/QtGui/QGradient ../../include/QtGui/QLinearGradient ../../include/QtGui/QRadialGradient ../../include/QtGui/QConicalGradient ../../include/QtGui/QColor ../../include/QtGui/QColormap ../../include/QtGui/QTileRules ../../include/QtGui/QMatrix ../../include/QtGui/QPaintDevice ../../include/QtGui/QTextItem ../../include/QtGui/QPaintEngine ../../include/QtGui/QPaintEngineState ../../include/QtGui/QPainter ../../include/QtGui/QPainterPath ../../include/QtGui/QPainterPathPrivate ../../include/QtGui/QPainterPathStroker ../../include/QtGui/QPen ../../include/QtGui/QPolygon ../../include/QtGui/QPolygonF ../../include/QtGui/QPrintEngine ../../include/QtGui/QPrinter ../../include/QtGui/QPrinterInfo ../../include/QtGui/QRegion ../../include/QtGui/QRgb ../../include/QtGui/QStylePainter ../../include/QtGui/QTransform ../../include/QtGui/QWMatrix ../../include/QtGui/QHaikuStyle ../../include/QtGui/QtHaikuView ../../include/QtGui/QtHaikuWindow -+SYNCQT.PRIVATE_HEADER_FILES = ../gui/dialogs/qabstractpagesetupdialog_p.h ../gui/dialogs/qabstractprintdialog_p.h ../gui/dialogs/qcolordialog_p.h ../gui/dialogs/qdialog_p.h ../gui/dialogs/qfiledialog_p.h ../gui/dialogs/qfiledialog_win_p.h ../gui/dialogs/qfileinfogatherer_p.h ../gui/dialogs/qfilesystemmodel_p.h ../gui/dialogs/qfontdialog_p.h ../gui/dialogs/qfscompleter_p.h ../gui/dialogs/qpagesetupdialog_unix_p.h ../gui/dialogs/qsidebar_p.h ../gui/dialogs/qwizard_win_p.h ../gui/embedded/qkbd_defaultmap_qws_p.h ../gui/embedded/qkbd_qws_p.h ../gui/embedded/qlock_p.h ../gui/embedded/qscreenmulti_qws_p.h ../gui/embedded/qtransportauth_qws_p.h ../gui/embedded/qunixsocket_p.h ../gui/embedded/qunixsocketserver_p.h ../gui/embedded/qwindowsystem_p.h ../gui/embedded/qwscommand_qws_p.h ../gui/embedded/qwsdisplay_qws_p.h ../gui/embedded/qwslock_p.h ../gui/embedded/qwsmanager_p.h ../gui/embedded/qwssharedmemory_p.h ../gui/embedded/qwssignalhandler_p.h ../gui/graphicsview/qgraph_p.h ../gui/graphicsview/qgraphicsanchorlayout_p.h ../gui/graphicsview/qgraphicsitem_p.h ../gui/graphicsview/qgraphicslayout_p.h ../gui/graphicsview/qgraphicslayoutitem_p.h ../gui/graphicsview/qgraphicsproxywidget_p.h ../gui/graphicsview/qgraphicsscene_bsp_p.h ../gui/graphicsview/qgraphicsscene_p.h ../gui/graphicsview/qgraphicsscenebsptreeindex_p.h ../gui/graphicsview/qgraphicssceneindex_p.h ../gui/graphicsview/qgraphicsscenelinearindex_p.h ../gui/graphicsview/qgraphicstransform_p.h ../gui/graphicsview/qgraphicsview_p.h ../gui/graphicsview/qgraphicswidget_p.h ../gui/graphicsview/qgridlayoutengine_p.h ../gui/graphicsview/qsimplex_p.h ../gui/kernel/qaction_p.h ../gui/kernel/qapplication_p.h ../gui/kernel/qclipboard_p.h ../gui/kernel/qcocoaapplication_mac_p.h ../gui/kernel/qcocoaapplicationdelegate_mac_p.h ../gui/kernel/qcocoamenuloader_mac_p.h ../gui/kernel/qcocoapanel_mac_p.h ../gui/kernel/qcocoasharedwindowmethods_mac_p.h ../gui/kernel/qcocoaview_mac_p.h ../gui/kernel/qcocoawindow_mac_p.h ../gui/kernel/qcocoawindowcustomthemeframe_mac_p.h ../gui/kernel/qcocoawindowdelegate_mac_p.h ../gui/kernel/qcursor_p.h ../gui/kernel/qdesktopwidget_mac_p.h ../gui/kernel/qdnd_p.h ../gui/kernel/qevent_p.h ../gui/kernel/qeventdispatcher_glib_qws_p.h ../gui/kernel/qeventdispatcher_mac_p.h ../gui/kernel/qeventdispatcher_qws_p.h ../gui/kernel/qeventdispatcher_s60_p.h ../gui/kernel/qeventdispatcher_x11_p.h ../gui/kernel/qgesture_p.h ../gui/kernel/qgesturemanager_p.h ../gui/kernel/qguieventdispatcher_glib_p.h ../gui/kernel/qguiplatformplugin_p.h ../gui/kernel/qkde_p.h ../gui/kernel/qkeymapper_p.h ../gui/kernel/qkeysequence_p.h ../gui/kernel/qlayout_p.h ../gui/kernel/qlayoutengine_p.h ../gui/kernel/qmacgesturerecognizer_mac_p.h ../gui/kernel/qmultitouch_mac_p.h ../gui/kernel/qnsframeview_mac_p.h ../gui/kernel/qnsthemeframe_mac_p.h ../gui/kernel/qnstitledframe_mac_p.h ../gui/kernel/qshortcutmap_p.h ../gui/kernel/qsoftkeymanager_common_p.h ../gui/kernel/qsoftkeymanager_p.h ../gui/kernel/qsoftkeymanager_s60_p.h ../gui/kernel/qsound_p.h ../gui/kernel/qstandardgestures_p.h ../gui/kernel/qt_cocoa_helpers_mac_p.h ../gui/kernel/qt_gui_pch.h ../gui/kernel/qt_mac_p.h ../gui/kernel/qt_s60_p.h ../gui/kernel/qt_x11_p.h ../gui/kernel/qwidget_p.h ../gui/kernel/qwidgetaction_p.h ../gui/kernel/qwinnativepangesturerecognizer_win_p.h ../gui/effects/qgraphicseffect_p.h ../gui/s60framework/qs60mainapplication_p.h ../gui/image/qbmphandler_p.h ../gui/image/qgifhandler_p.h ../gui/image/qicon_p.h ../gui/image/qiconloader_p.h ../gui/image/qimage_p.h ../gui/image/qimagepixmapcleanuphooks_p.h ../gui/image/qjpeghandler_p.h ../gui/image/qmnghandler_p.h ../gui/image/qnativeimage_p.h ../gui/image/qpaintengine_pic_p.h ../gui/image/qpicture_p.h ../gui/image/qpixmap_mac_p.h ../gui/image/qpixmap_raster_p.h ../gui/image/qpixmap_s60_p.h ../gui/image/qpixmap_x11_p.h ../gui/image/qpixmapcache_p.h ../gui/image/qpixmapdata_p.h ../gui/image/qpixmapdatafactory_p.h ../gui/image/qpixmapfilter_p.h ../gui/image/qpnghandler_p.h ../gui/image/qppmhandler_p.h ../gui/image/qtiffhandler_p.h ../gui/image/qxbmhandler_p.h ../gui/image/qxpmhandler_p.h ../gui/text/qabstractfontengine_p.h ../gui/text/qabstracttextdocumentlayout_p.h ../gui/text/qcssparser_p.h ../gui/text/qfont_p.h ../gui/text/qfontengine_ft_p.h ../gui/text/qfontengine_p.h ../gui/text/qfontengine_qpf_p.h ../gui/text/qfontengine_s60_p.h ../gui/text/qfontengine_win_p.h ../gui/text/qfontengine_x11_p.h ../gui/text/qfontengineglyphcache_p.h ../gui/text/qfontsubset_p.h ../gui/text/qfragmentmap_p.h ../gui/text/qstatictext_p.h ../gui/text/qtextcontrol_p.h ../gui/text/qtextcontrol_p_p.h ../gui/text/qtextcursor_p.h ../gui/text/qtextdocument_p.h ../gui/text/qtextdocumentfragment_p.h ../gui/text/qtextdocumentlayout_p.h ../gui/text/qtextengine_p.h ../gui/text/qtextformat_p.h ../gui/text/qtexthtmlparser_p.h ../gui/text/qtextimagehandler_p.h ../gui/text/qtextobject_p.h ../gui/text/qtextodfwriter_p.h ../gui/text/qtexttable_p.h ../gui/text/qzipreader_p.h ../gui/text/qzipwriter_p.h ../gui/itemviews/qabstractitemview_p.h ../gui/itemviews/qabstractproxymodel_p.h ../gui/itemviews/qbsptree_p.h ../gui/itemviews/qcolumnview_p.h ../gui/itemviews/qcolumnviewgrip_p.h ../gui/itemviews/qheaderview_p.h ../gui/itemviews/qitemeditorfactory_p.h ../gui/itemviews/qitemselectionmodel_p.h ../gui/itemviews/qlistview_p.h ../gui/itemviews/qlistwidget_p.h ../gui/itemviews/qproxymodel_p.h ../gui/itemviews/qstandarditemmodel_p.h ../gui/itemviews/qtableview_p.h ../gui/itemviews/qtablewidget_p.h ../gui/itemviews/qtreeview_p.h ../gui/itemviews/qtreewidget_p.h ../gui/itemviews/qtreewidgetitemiterator_p.h ../gui/itemviews/qwidgetitemdata_p.h ../gui/widgets/qabstractbutton_p.h ../gui/widgets/qabstractscrollarea_p.h ../gui/widgets/qabstractslider_p.h ../gui/widgets/qabstractspinbox_p.h ../gui/widgets/qcalendartextnavigator_p.h ../gui/widgets/qcocoamenu_mac_p.h ../gui/widgets/qcocoatoolbardelegate_mac_p.h ../gui/widgets/qcombobox_p.h ../gui/widgets/qdatetimeedit_p.h ../gui/widgets/qdockarealayout_p.h ../gui/widgets/qdockwidget_p.h ../gui/widgets/qeffects_p.h ../gui/widgets/qframe_p.h ../gui/widgets/qlabel_p.h ../gui/widgets/qlinecontrol_p.h ../gui/widgets/qlineedit_p.h ../gui/widgets/qmainwindowlayout_p.h ../gui/widgets/qmdiarea_p.h ../gui/widgets/qmdisubwindow_p.h ../gui/widgets/qmenu_p.h ../gui/widgets/qmenu_wince_resource_p.h ../gui/widgets/qmenubar_p.h ../gui/widgets/qplaintextedit_p.h ../gui/widgets/qpushbutton_p.h ../gui/widgets/qscrollarea_p.h ../gui/widgets/qsplitter_p.h ../gui/widgets/qtabbar_p.h ../gui/widgets/qtextedit_p.h ../gui/widgets/qtoolbar_p.h ../gui/widgets/qtoolbararealayout_p.h ../gui/widgets/qtoolbarextension_p.h ../gui/widgets/qtoolbarlayout_p.h ../gui/widgets/qtoolbarseparator_p.h ../gui/widgets/qwidgetanimator_p.h ../gui/widgets/qwidgetresizehandler_p.h ../gui/statemachine/qbasickeyeventtransition_p.h ../gui/statemachine/qbasicmouseeventtransition_p.h ../gui/util/qcompleter_p.h ../gui/util/qsystemtrayicon_p.h ../gui/util/qundostack_p.h ../gui/accessible/qaccessible_mac_p.h ../gui/styles/qcleanlooksstyle_p.h ../gui/styles/qcommonstyle_p.h ../gui/styles/qcommonstylepixmaps_p.h ../gui/styles/qgtkpainter_p.h ../gui/styles/qgtkstyle_p.h ../gui/styles/qmacstyle_mac_p.h ../gui/styles/qmacstylepixmaps_mac_p.h ../gui/styles/qmotifstyle_p.h ../gui/styles/qproxystyle_p.h ../gui/styles/qs60style_p.h ../gui/styles/qstyle_p.h ../gui/styles/qstylehelper_p.h ../gui/styles/qstylesheetstyle_p.h ../gui/styles/qwindowscestyle_p.h ../gui/styles/qwindowsmobilestyle_p.h ../gui/styles/qwindowsstyle_p.h ../gui/styles/qwindowsvistastyle_p.h ../gui/styles/qwindowsxpstyle_p.h ../gui/egl/qegl_p.h ../gui/egl/qeglcontext_p.h ../gui/egl/qeglproperties_p.h ../gui/inputmethod/qcoefepinputcontext_p.h ../gui/inputmethod/qinputcontext_p.h ../gui/inputmethod/qmacinputcontext_p.h ../gui/inputmethod/qwininputcontext_p.h ../gui/inputmethod/qwsinputcontext_p.h ../gui/inputmethod/qximinputcontext_p.h ../gui/painting/qbackingstore_p.h ../gui/painting/qbezier_p.h ../gui/painting/qblendfunctions_p.h ../gui/painting/qcolor_p.h ../gui/painting/qcssutil_p.h ../gui/painting/qcups_p.h ../gui/painting/qdatabuffer_p.h ../gui/painting/qdrawhelper_arm_simd_p.h ../gui/painting/qdrawhelper_mmx_p.h ../gui/painting/qdrawhelper_neon_p.h ../gui/painting/qdrawhelper_p.h ../gui/painting/qdrawhelper_sse_p.h ../gui/painting/qdrawhelper_x86_p.h ../gui/painting/qdrawingprimitive_sse2_p.h ../gui/painting/qemulationpaintengine_p.h ../gui/painting/qfixed_p.h ../gui/painting/qgraphicssystem_mac_p.h ../gui/painting/qgraphicssystem_p.h ../gui/painting/qgraphicssystem_qws_p.h ../gui/painting/qgraphicssystem_raster_p.h ../gui/painting/qgraphicssystem_runtime_p.h ../gui/painting/qgraphicssystemfactory_p.h ../gui/painting/qgraphicssystemplugin_p.h ../gui/painting/qgrayraster_p.h ../gui/painting/qimagescale_p.h ../gui/painting/qmath_p.h ../gui/painting/qmemrotate_p.h ../gui/painting/qoutlinemapper_p.h ../gui/painting/qpaintbuffer_p.h ../gui/painting/qpaintengine_alpha_p.h ../gui/painting/qpaintengine_mac_p.h ../gui/painting/qpaintengine_p.h ../gui/painting/qpaintengine_preview_p.h ../gui/painting/qpaintengine_raster_p.h ../gui/painting/qpaintengine_s60_p.h ../gui/painting/qpaintengine_x11_p.h ../gui/painting/qpaintengineex_p.h ../gui/painting/qpainter_p.h ../gui/painting/qpainterpath_p.h ../gui/painting/qpathclipper_p.h ../gui/painting/qpdf_p.h ../gui/painting/qpen_p.h ../gui/painting/qpolygonclipper_p.h ../gui/painting/qprintengine_mac_p.h ../gui/painting/qprintengine_pdf_p.h ../gui/painting/qprintengine_ps_p.h ../gui/painting/qprintengine_qws_p.h ../gui/painting/qprintengine_win_p.h ../gui/painting/qprinter_p.h ../gui/painting/qprinterinfo_unix_p.h ../gui/painting/qrasterdefs_p.h ../gui/painting/qrasterizer_p.h ../gui/painting/qstroker_p.h ../gui/painting/qtessellator_p.h ../gui/painting/qtextureglyphcache_p.h ../gui/painting/qvectorpath_p.h ../gui/painting/qwindowsurface_mac_p.h ../gui/painting/qwindowsurface_p.h ../gui/painting/qwindowsurface_qws_p.h ../gui/painting/qwindowsurface_raster_p.h ../gui/painting/qwindowsurface_s60_p.h ../gui/painting/qwindowsurface_x11_p.h ../gui/image/qpixmap_haiku_p.h ../gui/styles/qhaikustyle_p.h ../gui/kernel/qeventdispatcher_haiku_p.h -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qeventdispatcher_haiku_p.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qeventdispatcher_haiku_p.h ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qeventdispatcher_haiku_p.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qeventdispatcher_haiku_p.h 2011-06-14 03:50:02.157024256 +0000 -@@ -0,0 +1 @@ -+#include "../../../src/gui/kernel/qeventdispatcher_haiku_p.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qhaikustyle_p.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qhaikustyle_p.h ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qhaikustyle_p.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qhaikustyle_p.h 2011-06-14 03:49:44.729284608 +0000 -@@ -0,0 +1 @@ -+#include "../../../src/gui/styles/qhaikustyle_p.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qpixmap_haiku_p.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qpixmap_haiku_p.h ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/private/qpixmap_haiku_p.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/private/qpixmap_haiku_p.h 2011-06-13 22:06:43.089653248 +0000 -@@ -0,0 +1 @@ -+#include "../../../src/gui/image/qpixmap_haiku_p.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/qhaikustyle.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qhaikustyle.h ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/qhaikustyle.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qhaikustyle.h 2010-04-15 16:14:35.000000000 +0000 -@@ -0,0 +1 @@ -+#include "../../src/gui/styles/qhaikustyle.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/qsystemtrayicon_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qsystemtrayicon_haiku.h ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/qsystemtrayicon_haiku.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qsystemtrayicon_haiku.h 2010-07-02 03:02:00.000000000 +0000 -@@ -0,0 +1 @@ -+#include "../../src/gui/util/qsystemtrayicon_haiku.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/qwidget_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qwidget_haiku.h ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/qwidget_haiku.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qwidget_haiku.h 2010-11-09 02:20:07.000000000 +0000 -@@ -0,0 +1 @@ -+#include "../../src/gui/kernel/qwidget_haiku.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/include/QtGui/qwindowdefs_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qwindowdefs_haiku.h ---- qt-everywhere-opensource-src-4.7.3/include/QtGui/qwindowdefs_haiku.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/include/QtGui/qwindowdefs_haiku.h 2011-06-13 22:06:43.090963968 +0000 -@@ -0,0 +1 @@ -+#include "../../src/gui/kernel/qwindowdefs_haiku.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/makehaikupkg.sh qt-everywhere-opensource-src-4.7.3_haiku/makehaikupkg.sh ---- qt-everywhere-opensource-src-4.7.3/makehaikupkg.sh 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/makehaikupkg.sh 2011-06-13 22:42:41.748945408 +0000 -@@ -0,0 +1,1853 @@ -+#!/bin/sh -+ -+QTROOT=../qtbuild -+QTROOT=`readlink -f $QTROOT` -+ -+###################################################################### -+echo "Install Qt into sandbox :$QTROOT" -+###################################################################### -+echo " Prepare" -+mkdir -p $QTROOT -+rm -rf $QTROOT/boot -+echo " Install Qt" -+INSTALL_ROOT=$QTROOT make install -+echo " Install documentation" -+INSTALL_ROOT=$QTROOT make install_qchdocs -+ -+###################################################################### -+echo "Remove debug info" -+###################################################################### -+echo " Delete *.debug files" -+find "$QTROOT/boot/common/" -name "*.debug" -delete -+echo " Strip debug info from *.so files" -+find "$QTROOT/boot/common/" -name "*.so*" -exec strip -s {} \; -+echo " Strip debug info from binary files" -+find "$QTROOT/boot/common/bin/" -name "*" -exec strip -s {} \; -+ -+###################################################################### -+echo "Make qsystray utility" -+###################################################################### -+echo " Make" -+cd ./src/3rdparty/haiku-tools/qsystray -+make -+echo " Install" -+cp -f ./qsystray $QTROOT/boot/common/bin -+cp -f ./qsystray_gcc2 $QTROOT/boot/common/bin -+mimeset -f $QTROOT/boot/common/bin/qsystray -+mimeset -f $QTROOT/boot/common/bin/qsystray_gcc2 -+ -+###################################################################### -+echo "Remove useless files" -+###################################################################### -+echo " HTML docs" -+rm -rf $QTROOT/boot/common/documentation/doc/Qt/html -+echo " Images" -+rm -rf $QTROOT/boot/common/documentation/doc/Qt/src -+ -+###################################################################### -+echo "Check for hybrid build" -+###################################################################### -+if [ -f /boot/system/lib/libsupc++.so ] ; then -+ echo "gcc4 build - install libs into /common/lib folder" -+else -+ echo "gcc2 build - install libs into /common/lib/gcc4 folder" -+ echo "Move pkgconfig files from lib/gcc4 to parent folder" -+ mkdir $QTROOT/boot/common/lib/pkgconfig -+ mv $QTROOT/boot/common/lib/gcc4/pkgconfig $QTROOT/boot/common/lib -+fi -+ -+###################################################################### -+echo "Add Resources for binaries" -+###################################################################### -+ -+###################################################################### -+echo " Qt Assistant" -+###################################################################### -+echo 'resource app_signature "application/x-vnd.assistant"; -+resource app_flags B_SINGLE_LAUNCH; -+resource app_version { -+ major = 4, -+ middle = 7, -+ minor = 0, -+ variety = 0, -+ internal = 0, -+ short_info = "Qt Assistant", -+ long_info = "Qt Assistant" -+}; -+resource vector_icon { -+ $"6E6369660A030062250380C34205FF04003303663333020106023DDD49000000" -+ $"0000003DDD4949EEA449EEA400B00000FF993300020106043DA9380000000000" -+ $"003DA93849EEA449EEA400FFFFFF2FFF93936CFF0000FFCF000004FF7F04FF66" -+ $"04614C1E060AEFE707B93AB30DB93AB30DB8EB20B852B302B89DB2FCB852B302" -+ $"B852B302B639B327B650B325B464B34D20B6E320B4CE20B6E3CF6BB50DD154C9" -+ $"ABCDDDC9ABCDDDCB16CD9ECC35CA23CC35CBF2CC35CA23B6290606EF0BCC35CA" -+ $"23CC35CA23CC35CBF2C9ABCDDDCB16CD9EC9ABCDDDB50DD154B50DB6C2B50DB6" -+ $"C2B50DB457B93AB30DB6FBB2AEB93AB30DCC35B62906149AF9FFFF99C5DBB9A3" -+ $"C785B9D1BCBDC965BCDFBEB4C785BE9EC785C551C785C551C785C5E6C7B7C671" -+ $"C796C646C7D4C699C840C6ACC803C6ACC846C6ACC853C6ACC84CC6ACC8B1C6A6" -+ $"C987C656C918C689C987C656C987C805C987C805C8C9C859C758C89AC80FC88B" -+ $"C73DC89CC70BC89DC723C89DC665C89DC58FC80CC5E6C86DC52AC79BC4F8C5ED" -+ $"C4F8C6E5C4F8C5EDBE80C412BE75BC7EC52ABC930A04C965BEB4C785BE9EC785" -+ $"BEA8C886BEB40205C7E9C69BC826C68CC802C6A7C840C6AC55C6ACC846C6ACC8" -+ $"53C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C656C8A9C656C8A9C656C8" -+ $"65C675060D9FF1FE03C58FC80CC5E6C86DC52AC79BC4F8C5EDC4F8C6E5C4F8C5" -+ $"EDBE80C412BE75BC7EC333C333BCEFC333BCEFC353BD68C37FBE79C36CBDEBC3" -+ $"7FBE79C419BE80C419C5EDC419C5EDC419C6E5C4B1C80CC44CC79BC507C86DC6" -+ $"2CC89DC586C89DC62CC89DC70BC89DC70BC89DC665C89D0A04C5DBB9A3C4FCB9" -+ $"A3C450BC83C52ABC93000BC02DC624C02DC624C084C544C0AFC0FEC0AFC38DC0" -+ $"AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BAE8BE9CBAD8BE82BAD7BE" -+ $"8FBAD7BDE1BAD7BD0FBBF1BD66BB35BCB2BCBEBC83C0ECBC83BE68BC83C35ABD" -+ $"0DC617BCB1C514BD65C70EBE92C789BDE7C789BE9AC789BEA9C788BEA1C788BF" -+ $"55C77DC02DC624BFD6C706C02DC6240211C2C7C6AFC35DC54DC22EC817C008C9" -+ $"6FC146C902C028CA13C099CABCC0595BC0CBCAE9C17FCB00C118CB00C19DCB00" -+ $"C1DFCAFAC1BDCAFEC1DFCAFAC1DFCCE0C1DFCCE0C1DFCCE0C103CCFDC103CCFD" -+ $"C0C2CD05C049CD09C084CD09BF88CD09BE76CC7CBEECCCDBBDDBCBFFBD1EC9A9" -+ $"BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6C0DDB8F6C39AB8F6BDE8" -+ $"BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBE2BB89BBEA9B8A6BE69B89F" -+ $"C064B8D9C275BB14C1A4B9AAC342BC75C3A7C10BC3A7BE71C3A7C36D0203C17F" -+ $"CB00C162CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC12CCAFAC12CCAFAC145" -+ $"CAFE020DBF44BC40BEFCBB85BF9BBD1EBFC5C0FEBFC5BEB2BFC5C38DBF43C624" -+ $"BF9AC544BEFDC6D9BE20C774BE9CC749BE44C782BE92C789BE6AC789BE9AC789" -+ $"BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C084C544C0AFC0FEC0AFC38D" -+ $"C0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BAE8BE9CBAD8BE82BAD7" -+ $"BE8FBAD7BE5ABAD7BE10BAE9BE34BADDBE10BAE9BE10BAE9BE10BAE9BE95BB12" -+ $"0222BEEDCCC5BEEECCC6BEE9CCC4BEE1CCC0BEE5CCC2BEE1CCBFBEE0CCBFBEE0" -+ $"CCBFBEDCCCBDBED4CCB9BED8CCBBBED4CCB9BED2CCB8BED3CCB8BECFCCB6BEC8" -+ $"CCB3BECBCCB4BEC7CCB2BEC5CCB1BEC6CCB1BEC2CCAFBEBCCCACBEBFCCADBEBA" -+ $"CCABBEB8CCA9BEB9CCAABEB5CCA8BEB0CCA4BEB2CCA6BEAECCA3BEAACCA1BEAC" -+ $"CCA2BEA8CCA0BEA4CC9DBEA6CC9EBEA2CC9BBE9ECC99BEA0CC9ABE9CCC97BE98" -+ $"CC95BE9ACC96BE96CC93BE91CC90BE93CC92BE90CC8FBE8DCC8D3DCC8EBE8ACC" -+ $"8BBE84CC87BE87CC89BE83CC86BE81CC85BE82CC85BE7ECC82BE76CC7CBE7ACC" -+ $"7FBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6C0" -+ $"DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBDF0B8" -+ $"9BBD03B89BBD03B89BBB8CB89BB98BBA58BA61B92EB88DBBBAB80CC0DDB80CBD" -+ $"E8B80CC39AB924C721B86AC5B2B9DAC88ABC34C9A9BAE2C961BC7ECB0EBD8CCC" -+ $"7CBCF0CBFFBE02CCDBBF5FCD09BE9ECD09BF63CD09BF6ACD09BF67CD09BF6ACD" -+ $"09C037CD09C037CD09BFB9CD07BEEECCC6BF4BCCF1BEEECCC60204B3A5BFF7B3" -+ $"A5B92CB3A5C6C2BFF7CC48B92CCC48C6C2CC48CC48BFF7CC48C6C2CC48B92CBF" -+ $"F7B3A5C6C2B3A5B92CB3A50204BB6DBFF7BB6DC277BB6DBD76BFF7BB6DBD76BB" -+ $"6DC277BB6DC481BFF7C481BD76C481C277BFF7C481C277C481BD76C481020420" -+ $"BF8820B89F20C671BF88CC11B89FCC11C671CC11CC11BF88CC11C671CC11B89F" -+ $"BF8820C67120B89F200204BB36BF88BB36C1EABB36BD26BF88BB36BD26BB36C1" -+ $"EABB36C3DBBF88C3DBBD26C3DBC1EABF88C3DBC1EAC3DBBD26C3DB0204B337BF" -+ $"88B337B8BDB337C653BF88CBDAB8BDCBDAC653CBDACBDABF88CBDAC653CBDAB8" -+ $"BDBF88B337C653B337B8BDB3370204BAFEBF88BAFEC209BAFEBD08BF88BAFEBD" -+ $"08BAFEC209BAFEC412BF88C412BD08C412C209BF88C412C209C412BD08C41202" -+ $"04BF88B3DDC5FAB3DDB916B3DDB3DDBF88B3DDB916B3DDC5FABF88CB34B916CB" -+ $"34C5FACB34CB34BF88CB34C5FACB34B9160204BF88C4B8C264C4B8BCACC4B8BA" -+ $"58BF88BA58C264BA58BCACBF88BA58BCACBA58C264BA58C4B8BF88C4B8BCACC4" -+ $"B8C2640206BF88B63DB9D4B63DC53CB63DCA4FC04AC9EBBAAFCA53C00ACA56BF" -+ $"88CA56BFC9CA56B993BF88B4BAC57DB4BAB993B4BAB4BABF88B4BAB993B4BABF" -+ $"C9B4C2C04AB4BDC00AB525BAAF0206BF88C718BC32C718C2DEC718C595C10BC5" -+ $"95C462C595C0CAC589C04AC591C089C529C345BF88C595C29DC595BC74C595B9" -+ $"88C04AB9E7C345B980C089B97BC10BB97BC0CAB97BC4620206BF88CB34BD68CB" -+ $"34C1A8CB34C55EC9A3C3A6CAA1C55EC9A3C220C405C220C405C15CC477BF88C4" -+ $"B8C07AC4B8BE97C4B8BCF1C405BDB4C477BCF1C405B9B3C9A3B9B3C9A3BB6ACA" -+ $"A10206BF88B3DDC1A8B3DDBD68B3DDB9B3B56DBB6AB46FB9B3B56DBCF1BB0BBC" -+ $"F1BB0BBDB4BA9ABF88BA58BE97BA58C07ABA58C220BB0BC15CBA9AC220BB0BC5" -+ $"5EB56DC55EB56DC3A6B46F0206C4B8BF88C4B8BE97C4B8C07AC405C220C477C1" -+ $"5CC405C220C9A3C55EC9A3C55ECAA1C3A6CB34BF88CB34C1A8CB34BD68C9A3B9" -+ $"B3CAA1BB6AC9A3B9B3C405BCF1C405BCF1C477BDB40206BA58BF88BA58C07ABA" -+ $"58BE97BB0BBCF1BA9ABDB4BB0BBCF1B56DB9B3B56DB9B3B46FBB6AB3DDBF88B3" -+ $"DDBD68B3DDC1A8B56DC55EB46FC3A6B56DC55EBB0BC220BB0BC220BA9AC15C02" -+ $"06BF88B90DC264B90DBCACB90DBA58BE3CBA58BB60BA58BE75BA63BEE2BA5CBE" -+ $"ACBAB5BC54BF88BA58BCE4BA58C22CBA58C4ADBEE2C45BBC54C4B4BEACC4B8BE" -+ $"3CC4B8BE75C4B8BB600206BF88C9E8C5C2C9E8B94EC9E8B3E2BEE2B438C507B3" -+ $"DFBF19B3DDBF88B3DDBF50B3DDC5FABF88CB34B916CB34C5FACB34CB34BF88CB" -+ $"34C5FACB34BF50CB2FBEE2CB32BF19CAD9C5070206BF88CB34B93ECB34C5D2CB" -+ $"34CB31BFFECAF2C639CB30BFE9CB2F40CB30BFD4CAD9C5E4BF88CAC5C5C2CAC5" -+ $"B94ECAC5B3E240B438C5E4B3E0BFD4B3E0BFFEB3E1BFE9B41EC6390206BA58BF" -+ $"1ABA58BC3DBA58BF2ABA5ABF49BA59BF39BA7BBC8ABF88BA58BCC1BA58C24FBA" -+ $"58C4B6BF49C495BC8AC4B7BF39C4B8BF1AC4B8BF2AC4B8BC3DBF88B9EAC264B9" -+ $"EABCACB9EA150A000100023F6E570000000000003F0079920DF9AFA7960A0101" -+ $"01023F6E570000000000003F0079920DF9AFA7960A020102023F6E5700000000" -+ $"00003F0079920DF9AFA7960A000103023F6E570000000000003F0079920DF9AF" -+ $"A7960A000104023F6E570000000000003F0079920DF9AFA7960A00020506023F" -+ $"6E570000000000003F0079920DF9AFA7960A02020708023F6E57000000000000" -+ $"3F0079920DF9AFA7960A000109023F6E570000000000003F0079920DF9AFA796" -+ $"0A00020A0B023D6A390000000000003D3C934A3EB74A17E90A03020C0D023DD6" -+ $"F90000000000003DF73F4A20004A10000A04020E0F023DD6F90000000000003D" -+ $"F73F4A20004A10000A05021011023DD6F90000000000003DF73F4A20004A1000" -+ $"0A06021213023DD6F90000000000003DF73F4A20004A10000A070114023DD6F9" -+ $"0000000000003DF73F4A20004A10000A080115023DD6F90000000000003DF73F" -+ $"4A20004A10000A020116023DD6F90000000000003DF73F4A20004A10000A0201" -+ $"17023DD6F90000000000003DF73F4A20004A10000A020118023DD6F900000000" -+ $"00003DF73F4A20004A10000A020119023DD6F90000000000003DF73F4A20004A" -+ $"10000A09021A1B023DD6F90000000000003DF73F4A20004A10000A09021C1D02" -+ $"3DD6F90000000000003DF73F4A20004A1000" -+};' >/tmp/assistent.rdef -+rc /tmp/assistent.rdef -+xres -o "$QTROOT/boot/common/bin/assistant" /tmp/assistent.rsrc -+mimeset -f "$QTROOT/boot/common/bin/assistant" -+ -+ -+###################################################################### -+echo " Qt Designer" -+###################################################################### -+echo 'resource app_signature "application/x-vnd.designer"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ major = 4, -+ middle = 7, -+ minor = 0, -+ variety = 0, -+ internal = 0, -+ short_info = "Qt Designer", -+ long_info = "Qt Designer" -+}; -+ -+resource vector_icon { -+ $"6E63696613030062250380C34205FF04003303663333020106023DDD49000000" -+ $"0000003DDD4949EEA449EEA400B00000FF993300020106043DA9380000000000" -+ $"003DA93849EEA449EEA400FFFFFF2FFF93936CFF0000FFCF000004FF7F04FF66" -+ $"04614C050002001602BC612BBC6F8A3C6F8ABC612B4B0EBF4768A700E4FFFE02" -+ $"0016023C68F73C78F1BC78F13C68F74652864B378800E4FFFE04002302000603" -+ $"38BB01B81D04381D0438BB014A2F8B4A6CC900EFF0CE7FFFFFFFFFEFF0CE03E0" -+ $"C35D03C8AF5303F7E46E02000603343E6CB2D79432D794343E6C486F84489C71" -+ $"000000007F616061FF0000002B060AEFE707B93AB30DB93AB30DB8EB20B852B3" -+ $"02B89DB2FCB852B302B852B302B639B327B650B325B464B34D20B6E320B4CE20" -+ $"B6E3CF6BB50DD154C9ABCDDDC9ABCDDDCB16CD9ECC35CA23CC35CBF2CC35CA23" -+ $"B6290606EF0BCC35CA23CC35CA23CC35CBF2C9ABCDDDCB16CD9EC9ABCDDDB50D" -+ $"D154B50DB6C2B50DB6C2B50DB457B93AB30DB6FBB2AEB93AB30DCC35B6290614" -+ $"9AF9FFFF99C5DBB9A3C785B9D1BCBDC965BCDFBEB4C785BE9EC785C551C785C5" -+ $"51C785C5E6C7B7C671C796C646C7D4C699C840C6ACC803C6ACC846C6ACC853C6" -+ $"ACC84CC6ACC8B1C6A6C987C656C918C689C987C656C987C805C987C805C8C9C8" -+ $"59C758C89AC80FC88BC73DC89CC70BC89DC723C89DC665C89DC58FC80CC5E6C8" -+ $"6DC52AC79BC4F8C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC52ABC930A04C9" -+ $"65BEB4C785BE9EC785BEA8C886BEB40205C7E9C69BC826C68CC802C6A7C840C6" -+ $"AC55C6ACC846C6ACC853C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C656" -+ $"C8A9C656C8A9C656C865C675060D9FF1FE03C58FC80CC5E6C86DC52AC79BC4F8" -+ $"C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC333C333BCEFC333BCEFC353BD68" -+ $"C37FBE79C36CBDEBC37FBE79C419BE80C419C5EDC419C5EDC419C6E5C4B1C80C" -+ $"C44CC79BC507C86DC62CC89DC586C89DC62CC89DC70BC89DC70BC89DC665C89D" -+ $"0A04C5DBB9A3C4FCB9A3C450BC83C52ABC93000BC02DC624C02DC624C084C544" -+ $"C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BAE8" -+ $"BE9CBAD8BE82BAD7BE8FBAD7BDE1BAD7BD0FBBF1BD66BB35BCB2BCBEBC83C0EC" -+ $"BC83BE68BC83C35ABD0DC617BCB1C514BD65C70EBE92C789BDE7C789BE9AC789" -+ $"BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C02DC6240211C2C7C6AFC35D" -+ $"C54DC22EC817C008C96FC146C902C028CA13C099CABCC0595BC0CBCAE9C17FCB" -+ $"00C118CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC1DFCCE0C1DFCCE0C1DFCC" -+ $"E0C103CCFDC103CCFDC0C2CD05C049CD09C084CD09BF88CD09BE76CC7CBEECCC" -+ $"DBBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6C0" -+ $"DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBE2BB8" -+ $"9BBEA9B8A6BE69B89FC064B8D9C275BB14C1A4B9AAC342BC75C3A7C10BC3A7BE" -+ $"71C3A7C36D0203C17FCB00C162CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC1" -+ $"2CCAFAC12CCAFAC145CAFE020DBF44BC40BEFCBB85BF9BBD1EBFC5C0FEBFC5BE" -+ $"B2BFC5C38DBF43C624BF9AC544BEFDC6D9BE20C774BE9CC749BE44C782BE92C7" -+ $"89BE6AC789BE9AC789BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C084C5" -+ $"44C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BA" -+ $"E8BE9CBAD8BE82BAD7BE8FBAD7BE5ABAD7BE10BAE9BE34BADDBE10BAE9BE10BA" -+ $"E9BE10BAE9BE95BB120222BEEDCCC5BEEECCC6BEE9CCC4BEE1CCC0BEE5CCC2BE" -+ $"E1CCBFBEE0CCBFBEE0CCBFBEDCCCBDBED4CCB9BED8CCBBBED4CCB9BED2CCB8BE" -+ $"D3CCB8BECFCCB6BEC8CCB3BECBCCB4BEC7CCB2BEC5CCB1BEC6CCB1BEC2CCAFBE" -+ $"BCCCACBEBFCCADBEBACCABBEB8CCA9BEB9CCAABEB5CCA8BEB0CCA4BEB2CCA6BE" -+ $"AECCA3BEAACCA1BEACCCA2BEA8CCA0BEA4CC9DBEA6CC9EBEA2CC9BBE9ECC99BE" -+ $"A0CC9ABE9CCC97BE98CC95BE9ACC96BE96CC93BE91CC90BE93CC92BE90CC8FBE" -+ $"8DCC8D3DCC8EBE8ACC8BBE84CC87BE87CC89BE83CC86BE81CC85BE82CC85BE7E" -+ $"CC82BE76CC7CBE7ACC7FBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4" -+ $"C88AB955C5B2B8F6C0DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEE" -+ $"B89BBC76B89BBDF0B89BBD03B89BBD03B89BBB8CB89BB98BBA58BA61B92EB88D" -+ $"BBBAB80CC0DDB80CBDE8B80CC39AB924C721B86AC5B2B9DAC88ABC34C9A9BAE2" -+ $"C961BC7ECB0EBD8CCC7CBCF0CBFFBE02CCDBBF5FCD09BE9ECD09BF63CD09BF6A" -+ $"CD09BF67CD09BF6ACD09C037CD09C037CD09BFB9CD07BEEECCC6BF4BCCF1BEEE" -+ $"CCC60204B3A5BFF7B3A5B92CB3A5C6C2BFF7CC48B92CCC48C6C2CC48CC48BFF7" -+ $"CC48C6C2CC48B92CBFF7B3A5C6C2B3A5B92CB3A50204BB6DBFF7BB6DC277BB6D" -+ $"BD76BFF7BB6DBD76BB6DC277BB6DC481BFF7C481BD76C481C277BFF7C481C277" -+ $"C481BD76C481020420BF8820B89F20C671BF88CC11B89FCC11C671CC11CC11BF" -+ $"88CC11C671CC11B89FBF8820C67120B89F200204BB36BF88BB36C1EABB36BD26" -+ $"BF88BB36BD26BB36C1EABB36C3DBBF88C3DBBD26C3DBC1EABF88C3DBC1EAC3DB" -+ $"BD26C3DB0204B337BF88B337B8BDB337C653BF88CBDAB8BDCBDAC653CBDACBDA" -+ $"BF88CBDAC653CBDAB8BDBF88B337C653B337B8BDB3370204BAFEBF88BAFEC209" -+ $"BAFEBD08BF88BAFEBD08BAFEC209BAFEC412BF88C412BD08C412C209BF88C412" -+ $"C209C412BD08C4120204BF88B3DDC5FAB3DDB916B3DDB3DDBF88B3DDB916B3DD" -+ $"C5FABF88CB34B916CB34C5FACB34CB34BF88CB34C5FACB34B9160204BF88C4B8" -+ $"C264C4B8BCACC4B8BA58BF88BA58C264BA58BCACBF88BA58BCACBA58C264BA58" -+ $"C4B8BF88C4B8BCACC4B8C2640206BF88B63DB9D4B63DC53CB63DCA4FC04AC9EB" -+ $"BAAFCA53C00ACA56BF88CA56BFC9CA56B993BF88B4BAC57DB4BAB993B4BAB4BA" -+ $"BF88B4BAB993B4BABFC9B4C2C04AB4BDC00AB525BAAF0206BF88C718BC32C718" -+ $"C2DEC718C595C10BC595C462C595C0CAC589C04AC591C089C529C345BF88C595" -+ $"C29DC595BC74C595B988C04AB9E7C345B980C089B97BC10BB97BC0CAB97BC462" -+ $"0206BF88CB34BD68CB34C1A8CB34C55EC9A3C3A6CAA1C55EC9A3C220C405C220" -+ $"C405C15CC477BF88C4B8C07AC4B8BE97C4B8BCF1C405BDB4C477BCF1C405B9B3" -+ $"C9A3B9B3C9A3BB6ACAA10206BF88B3DDC1A8B3DDBD68B3DDB9B3B56DBB6AB46F" -+ $"B9B3B56DBCF1BB0BBCF1BB0BBDB4BA9ABF88BA58BE97BA58C07ABA58C220BB0B" -+ $"C15CBA9AC220BB0BC55EB56DC55EB56DC3A6B46F0206C4B8BF88C4B8BE97C4B8" -+ $"C07AC405C220C477C15CC405C220C9A3C55EC9A3C55ECAA1C3A6CB34BF88CB34" -+ $"C1A8CB34BD68C9A3B9B3CAA1BB6AC9A3B9B3C405BCF1C405BCF1C477BDB40206" -+ $"BA58BF88BA58C07ABA58BE97BB0BBCF1BA9ABDB4BB0BBCF1B56DB9B3B56DB9B3" -+ $"B46FBB6AB3DDBF88B3DDBD68B3DDC1A8B56DC55EB46FC3A6B56DC55EBB0BC220" -+ $"BB0BC220BA9AC15C0206BF88B90DC264B90DBCACB90DBA58BE3CBA58BB60BA58" -+ $"BE75BA63BEE2BA5CBEACBAB5BC54BF88BA58BCE4BA58C22CBA58C4ADBEE2C45B" -+ $"BC54C4B4BEACC4B8BE3CC4B8BE75C4B8BB600206BF88C9E8C5C2C9E8B94EC9E8" -+ $"B3E2BEE2B438C507B3DFBF19B3DDBF88B3DDBF50B3DDC5FABF88CB34B916CB34" -+ $"C5FACB34CB34BF88CB34C5FACB34BF50CB2FBEE2CB32BF19CAD9C5070206BF88" -+ $"CB34B93ECB34C5D2CB34CB31BFFECAF2C639CB30BFE9CB2F40CB30BFD4CAD9C5" -+ $"E4BF88CAC5C5C2CAC5B94ECAC5B3E240B438C5E4B3E0BFD4B3E0BFFEB3E1BFE9" -+ $"B41EC6390206BA58BF1ABA58BC3DBA58BF2ABA5ABF49BA59BF39BA7BBC8ABF88" -+ $"BA58BCC1BA58C24FBA58C4B6BF49C495BC8AC4B7BF39C4B8BF1AC4B8BF2AC4B8" -+ $"BC3DBF88B9EAC264B9EABCACB9EA020AB691B41FB691B41FB5C1B41FB524B58C" -+ $"B524B4BBB524B58CB524C93CB524C93CB524C9F3B677CA8FB5A6CA8FB677CA8F" -+ $"C851CA8FC851CA8FC908CA8FC9A4C93CC9A4C9F3C9A4C93CC9A4B89CC9A4B89C" -+ $"C9A4B7FFC922B72EC970B77CC922B72EC6C9B4D6C6C9B4D6C661B46DC50DB41F" -+ $"C5AAB41FC50DB41F020AB691B41FB691B41FB5C1B41FB524B58CB524B4BBB524" -+ $"B58CB524C93CB524C93CB524C9F3B677CA8FB5A6CA8FB677CA8FC851CA8FC851" -+ $"CA8FC908CA8FC9A4C93CC9A4C9F3C9A4C93CC9A4B89CC9A4B89CC9A4B7FFC922" -+ $"B72EC970B77CC922B72EC6C9B4D6C6C9B4D6C661B46DC50DB41FC5AAB41FC50D" -+ $"B41F020AC4F3B50AC55CB50AC4F3B50AB691B50AB691B50AB629B50AB60FB58C" -+ $"B60FB53EB60FB58CB60FC93CB60FC93CB60FC98AB691C9A4B629C9A4B691C9A4" -+ $"C86BC9A4C86BC9A4C89FC9A4C8D3C93CC8D3C970C8D3C93CC8D3B89CC8D3B89C" -+ $"C8D3B833C885B7CBC8B9B7E5C885B7CBC62DB572C62DB572C5DEB5240206B6E0" -+ $"B5DBB6E0B5DBB6E02BB6E0C8D3B6E0C74CB867C8D3C7E8C8D3C661C8D3C7E8C7" -+ $"4CC7E8B867C7E8B91EC780B819C55CB5DBC5AAB643C4BFB5DBB6FAB5DBB882B5" -+ $"DBB6FAB5DB0A04B904C3BAC5AAC3BAC5AAC661B904C6610A04B904B904C5AAB9" -+ $"04C5AABBABB904BBAB0A04B904BE6CC5AABE6CC5AAC113B904C1130A07B987B9" -+ $"BBBF3DBCCAC55CC50DC542C661C3D4C7CEC24CC79ABBDF400A07B987B9BBBF3D" -+ $"BCCAC55CC50DC542C661C3D4C7CEC24CC79ABBDF400A04BDCFC042C3BAC7B4C2" -+ $"4CC79ABBDF400A05BF71BEBAC542C647C3D4C7B4BDCFC042BF57BEBA0A04BF23" -+ $"BCCAC542C50DC527C661BF57BED406032FBC13BB0EBC13BB0EBC13BBF9BAA6BC" -+ $"7CBB91BC7CBAA6BC7CB987B9BB0E0A000100023F6E570000000000003F007992" -+ $"0DF9AFA7960A010101023F6E570000000000003F0079920DF9AFA7960A020102" -+ $"023F6E570000000000003F0079920DF9AFA7960A000103023F6E570000000000" -+ $"003F0079920DF9AFA7960A000104023F6E570000000000003F0079920DF9AFA7" -+ $"960A00020506023F6E570000000000003F0079920DF9AFA7960A02020708023F" -+ $"6E570000000000003F0079920DF9AFA7960A000109023E0AB60000000000003D" -+ $"2781493ACE49C5AC0A0A01251233B4D6BFA5C03F7D5C32C38F4788D04C593E01" -+ $"178422040A0E01260233B4D6BFA5C03F7D5C32C38F4788D04C593E0A0F012702" -+ $"33B4D6BFA5C03F7D5C32C38F4788D04C593E0A1001280233B4D6BFA5C03F7D5C" -+ $"32C38F4788D04C593E0A1101290233B4D6BFA5C03F7D5C32C38F4788D04C593E" -+ $"0A12012A0233B4D6BFA5C03F7D5C32C38F4788D04C593E" -+};' >/tmp/designer.rdef -+rc /tmp/designer.rdef -+xres -o "$QTROOT/boot/common/bin/designer" /tmp/designer.rsrc -+mimeset -f "$QTROOT/boot/common/bin/designer" -+ -+###################################################################### -+echo " Qt Linguist" -+###################################################################### -+echo 'resource app_signature "application/x-vnd.linguist"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ major = 4, -+ middle = 7, -+ minor = 0, -+ variety = 0, -+ internal = 0, -+ short_info = "Qt Linguist", -+ long_info = "Qt Linguist" -+}; -+ -+resource vector_icon { -+ $"6E63696618030062250380C34205FF04003303663333020106023DDD49000000" -+ $"0000003DDD4949EEA449EEA400B00000FF993300020106043DA9380000000000" -+ $"003DA93849EEA449EEA400FFFFFF2FFF93936CFF0000FFCF000004FF7F04FF66" -+ $"04614C02000602000000BDC8803DC8800000004BD3074987D3000035EDFF0000" -+ $"8D020106063EFBB90000000000003EFBB949F0D94BC42D00FFFFFF53DEFFFFBF" -+ $"94CAFFDD499BFFF3147AFFFF006DFF020106023EAC420000000000003EAC424A" -+ $"2B784BC42D00FFFFFFFF00339902000602000000BCA3653CA3650000004A62E4" -+ $"49D43C00FFFFFFFFB3CAFF020006080000003B1FAABB1FAA0000004841E7484E" -+ $"3D00FFFFFF26FBFDFF4DEEF7FF75DAEDFF9EBDDFFFC697CCFFEF6AB6FFFF57AD" -+ $"FF020006053B84A70000000000003B84A749DF004B668300428AFF442969F88E" -+ $"124DF2CF053BEEFF0035ED020006053B84A70000000000003B84A749DF004B6A" -+ $"5900428AFF442969F88E124DF2CF053BEEFF0035ED020016063AF08600000000" -+ $"00003AF08649DEE04B3FE800E604E74CF980FFC3FAFFF0050003B1B1C5020006" -+ $"0238270AB103BF3103BF38270A48A9A849875A00FFFFFFFFCECEDB020016022F" -+ $"032F3626A4B626A42F032F4872BB48FFBD00FFFF0002000602B82720B103DDB1" -+ $"03DD3827204A7CE349876200FFFFFFFFCECEDB02001602AF0317362693362693" -+ $"2F03174A985648FFC600FFFF0036060AEFE707B93AB30DB93AB30DB8EB20B852" -+ $"B302B89DB2FCB852B302B852B302B639B327B650B325B464B34D20B6E320B4CE" -+ $"20B6E3CF6BB50DD154C9ABCDDDC9ABCDDDCB16CD9ECC35CA23CC35CBF2CC35CA" -+ $"23B6290606EF0BCC35CA23CC35CA23CC35CBF2C9ABCDDDCB16CD9EC9ABCDDDB5" -+ $"0DD154B50DB6C2B50DB6C2B50DB457B93AB30DB6FBB2AEB93AB30DCC35B62906" -+ $"149AF9FFFF99C5DBB9A3C785B9D1BCBDC965BCDFBEB4C785BE9EC785C551C785" -+ $"C551C785C5E6C7B7C671C796C646C7D4C699C840C6ACC803C6ACC846C6ACC853" -+ $"C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C656C987C805C987C805C8C9" -+ $"C859C758C89AC80FC88BC73DC89CC70BC89DC723C89DC665C89DC58FC80CC5E6" -+ $"C86DC52AC79BC4F8C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC52ABC930A04" -+ $"C965BEB4C785BE9EC785BEA8C886BEB40205C7E9C69BC826C68CC802C6A7C840" -+ $"C6AC55C6ACC846C6ACC853C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C6" -+ $"56C8A9C656C8A9C656C865C675060D9FF1FE03C58FC80CC5E6C86DC52AC79BC4" -+ $"F8C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC333C333BCEFC333BCEFC353BD" -+ $"68C37FBE79C36CBDEBC37FBE79C419BE80C419C5EDC419C5EDC419C6E5C4B1C8" -+ $"0CC44CC79BC507C86DC62CC89DC586C89DC62CC89DC70BC89DC70BC89DC665C8" -+ $"9D0A04C5DBB9A3C4FCB9A3C450BC83C52ABC93000BC02DC624C02DC624C084C5" -+ $"44C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BA" -+ $"E8BE9CBAD8BE82BAD7BE8FBAD7BDE1BAD7BD0FBBF1BD66BB35BCB2BCBEBC83C0" -+ $"ECBC83BE68BC83C35ABD0DC617BCB1C514BD65C70EBE92C789BDE7C789BE9AC7" -+ $"89BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C02DC6240211C2C7C6AFC3" -+ $"5DC54DC22EC817C008C96FC146C902C028CA13C099CABCC0595BC0CBCAE9C17F" -+ $"CB00C118CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC1DFCCE0C1DFCCE0C1DF" -+ $"CCE0C103CCFDC103CCFDC0C2CD05C049CD09C084CD09BF88CD09BE76CC7CBEEC" -+ $"CCDBBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6" -+ $"C0DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBE2B" -+ $"B89BBEA9B8A6BE69B89FC064B8D9C275BB14C1A4B9AAC342BC75C3A7C10BC3A7" -+ $"BE71C3A7C36D0203C17FCB00C162CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFA" -+ $"C12CCAFAC12CCAFAC145CAFE020DBF44BC40BEFCBB85BF9BBD1EBFC5C0FEBFC5" -+ $"BEB2BFC5C38DBF43C624BF9AC544BEFDC6D9BE20C774BE9CC749BE44C782BE92" -+ $"C789BE6AC789BE9AC789BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C084" -+ $"C544C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57" -+ $"BAE8BE9CBAD8BE82BAD7BE8FBAD7BE5ABAD7BE10BAE9BE34BADDBE10BAE9BE10" -+ $"BAE9BE10BAE9BE95BB120222BEEDCCC5BEEECCC6BEE9CCC4BEE1CCC0BEE5CCC2" -+ $"BEE1CCBFBEE0CCBFBEE0CCBFBEDCCCBDBED4CCB9BED8CCBBBED4CCB9BED2CCB8" -+ $"BED3CCB8BECFCCB6BEC8CCB3BECBCCB4BEC7CCB2BEC5CCB1BEC6CCB1BEC2CCAF" -+ $"BEBCCCACBEBFCCADBEBACCABBEB8CCA9BEB9CCAABEB5CCA8BEB0CCA4BEB2CCA6" -+ $"BEAECCA3BEAACCA1BEACCCA2BEA8CCA0BEA4CC9DBEA6CC9EBEA2CC9BBE9ECC99" -+ $"BEA0CC9ABE9CCC97BE98CC95BE9ACC96BE96CC93BE91CC90BE93CC92BE90CC8F" -+ $"BE8DCC8D3DCC8EBE8ACC8BBE84CC87BE87CC89BE83CC86BE81CC85BE82CC85BE" -+ $"7ECC82BE76CC7CBE7ACC7FBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BA" -+ $"C4C88AB955C5B2B8F6C0DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBD" -+ $"EEB89BBC76B89BBDF0B89BBD03B89BBD03B89BBB8CB89BB98BBA58BA61B92EB8" -+ $"8DBBBAB80CC0DDB80CBDE8B80CC39AB924C721B86AC5B2B9DAC88ABC34C9A9BA" -+ $"E2C961BC7ECB0EBD8CCC7CBCF0CBFFBE02CCDBBF5FCD09BE9ECD09BF63CD09BF" -+ $"6ACD09BF67CD09BF6ACD09C037CD09C037CD09BFB9CD07BEEECCC6BF4BCCF1BE" -+ $"EECCC60204B3A5BFF7B3A5B92CB3A5C6C2BFF7CC48B92CCC48C6C2CC48CC48BF" -+ $"F7CC48C6C2CC48B92CBFF7B3A5C6C2B3A5B92CB3A50204BB6DBFF7BB6DC277BB" -+ $"6DBD76BFF7BB6DBD76BB6DC277BB6DC481BFF7C481BD76C481C277BFF7C481C2" -+ $"77C481BD76C481020420BF8820B89F20C671BF88CC11B89FCC11C671CC11CC11" -+ $"BF88CC11C671CC11B89FBF8820C67120B89F200204BB36BF88BB36C1EABB36BD" -+ $"26BF88BB36BD26BB36C1EABB36C3DBBF88C3DBBD26C3DBC1EABF88C3DBC1EAC3" -+ $"DBBD26C3DB0204B337BF88B337B8BDB337C653BF88CBDAB8BDCBDAC653CBDACB" -+ $"DABF88CBDAC653CBDAB8BDBF88B337C653B337B8BDB3370204BAFEBF88BAFEC2" -+ $"09BAFEBD08BF88BAFEBD08BAFEC209BAFEC412BF88C412BD08C412C209BF88C4" -+ $"12C209C412BD08C4120204BF88B3DDC5FAB3DDB916B3DDB3DDBF88B3DDB916B3" -+ $"DDC5FABF88CB34B916CB34C5FACB34CB34BF88CB34C5FACB34B9160204BF88C4" -+ $"B8C264C4B8BCACC4B8BA58BF88BA58C264BA58BCACBF88BA58BCACBA58C264BA" -+ $"58C4B8BF88C4B8BCACC4B8C2640206BF88B63DB9D4B63DC53CB63DCA4FC04AC9" -+ $"EBBAAFCA53C00ACA56BF88CA56BFC9CA56B993BF88B4BAC57DB4BAB993B4BAB4" -+ $"BABF88B4BAB993B4BABFC9B4C2C04AB4BDC00AB525BAAF0206BF88C718BC32C7" -+ $"18C2DEC718C595C10BC595C462C595C0CAC589C04AC591C089C529C345BF88C5" -+ $"95C29DC595BC74C595B988C04AB9E7C345B980C089B97BC10BB97BC0CAB97BC4" -+ $"620206BF88CB34BD68CB34C1A8CB34C55EC9A3C3A6CAA1C55EC9A3C220C405C2" -+ $"20C405C15CC477BF88C4B8C07AC4B8BE97C4B8BCF1C405BDB4C477BCF1C405B9" -+ $"B3C9A3B9B3C9A3BB6ACAA10206BF88B3DDC1A8B3DDBD68B3DDB9B3B56DBB6AB4" -+ $"6FB9B3B56DBCF1BB0BBCF1BB0BBDB4BA9ABF88BA58BE97BA58C07ABA58C220BB" -+ $"0BC15CBA9AC220BB0BC55EB56DC55EB56DC3A6B46F0206C4B8BF88C4B8BE97C4" -+ $"B8C07AC405C220C477C15CC405C220C9A3C55EC9A3C55ECAA1C3A6CB34BF88CB" -+ $"34C1A8CB34BD68C9A3B9B3CAA1BB6AC9A3B9B3C405BCF1C405BCF1C477BDB402" -+ $"06BA58BF88BA58C07ABA58BE97BB0BBCF1BA9ABDB4BB0BBCF1B56DB9B3B56DB9" -+ $"B3B46FBB6AB3DDBF88B3DDBD68B3DDC1A8B56DC55EB46FC3A6B56DC55EBB0BC2" -+ $"20BB0BC220BA9AC15C0206BF88B90DC264B90DBCACB90DBA58BE3CBA58BB60BA" -+ $"58BE75BA63BEE2BA5CBEACBAB5BC54BF88BA58BCE4BA58C22CBA58C4ADBEE2C4" -+ $"5BBC54C4B4BEACC4B8BE3CC4B8BE75C4B8BB600206BF88C9E8C5C2C9E8B94EC9" -+ $"E8B3E2BEE2B438C507B3DFBF19B3DDBF88B3DDBF50B3DDC5FABF88CB34B916CB" -+ $"34C5FACB34CB34BF88CB34C5FACB34BF50CB2FBEE2CB32BF19CAD9C5070206BF" -+ $"88CB34B93ECB34C5D2CB34CB31BFFECAF2C639CB30BFE9CB2F40CB30BFD4CAD9" -+ $"C5E4BF88CAC5C5C2CAC5B94ECAC5B3E240B438C5E4B3E0BFD4B3E0BFFEB3E1BF" -+ $"E9B41EC6390206BA58BF1ABA58BC3DBA58BF2ABA5ABF49BA59BF39BA7BBC8ABF" -+ $"88BA58BCC1BA58C24FBA58C4B6BF49C495BC8AC4B7BF39C4B8BF1AC4B8BF2AC4" -+ $"B8BC3DBF88B9EAC264B9EABCACB9EA0209B3C1BF37B3C1BA88B3C1C1D2B846C5" -+ $"E1B56EC447B79FC6B5B68DC7ABB6FEC74DB68DC7ABB544C8BCB544C8BCB544C8" -+ $"BCB6EFC8A4B6EFC8A4B93156BC86C768BB12C819BD8CC79BBFA8C7B6BE99C7B6" -+ $"C639C7B6CB90BF37CB90C3E6CB90BA88BFA8B6B9C639B6B9B918B6B80209B3A8" -+ $"BEEEB3A8BA3FB3A8C1892DC598B556C3FDB787C66CB674C761B6E5C703B674C7" -+ $"61B52BC872B52BC872B52BC872B6D6C85BB6D6C85BB919C83BBC6DC71EBAF9C7" -+ $"D0BD7353BF90C76CBE81C76C50C76CCB77BEEECB77C39DCB77BA3EBF90B66F50" -+ $"B66FB8FFB66F0209B36ABEBDB36ABA0DB36A44B7EFC567B517C3CCB748C63BB6" -+ $"36C730B6A7C6D2B636C730B4EDC842B4EDC842B4EDC842B698C82AB698C82AB8" -+ $"DBC80ABC2FC6EEBABBC79FBD35C721BF52C73BBE42C73BC5E2C73BCB39BEBDCB" -+ $"39C36CCB39BA0EBF52B63EC5E2B63EB8C1B63E0207BF52B6CBC594B6CBB90FB6" -+ $"CBB3F7BEBDB3F7BA5BB3F7C169B8C4C537B5DDC3C7B7FEC64DB690C79DB733C7" -+ $"16B935C777BC1DC65BBAF6C6EFBD21C691BF52C6AEBE35C6AEC595C6AECAACBE" -+ $"BDCAACC31ECAACBA5B0204BB64C65BBB90C664BA5CC6E0B6A2C78EB8D7C75BB6" -+ $"9CC793B690C79D29C798B90FC779BBE9C674BAC3C6FEBBBDC66C0206BF52B6CB" -+ $"C594B6CBBF33B6CBBEF6B6CCBF14B6CCC50EB6EEC9F4BEBDC9F4BA71C9F4C308" -+ $"BEF7C6ADC50EC68ABF15C6AEBF52C6AEBF33C6AEC594C6AECAACBEBDCAACC31E" -+ $"CAACBA5B0204BCAFC65BBDA0C68DBCA2C662BC86C66FBC94C668BD6BC698BF52" -+ $"C6AEBE5BC6AEBF6DC6AEBFA3C6ADBF88C6AEBE9DC6A90208B690C79DB733C716" -+ $"B6C7C79AB731C7912AC796B7D1C70BB957C537B896C646B670C3C7B48ABEBDB4" -+ $"8AC169B48ABA6CBF9BB6CCB97AB6E7BF83B6CBBF52B6CBBF6AB6CBB90FB6CBB3" -+ $"F7BEBDB3F7BA5BB3F7C169B8C4C537B5DDC3C7B7FEC64D0205B6F4BAE5B869B8" -+ $"B3BA4FBCC5C20BBC36BE22BD3BC2DABBFCC477BB73C3ACBBB6C56CBB22C764BA" -+ $"8FC667BACFC5D3B88ABF4DB73FC2BDB73FBBB2B73F0207C459C0ACC48EC0A1C4" -+ $"59C0ACBA53C0ACBA53C0ACBA1EC0A1B9C1C0CAB9E9C0ABB99CC0E8B986C142B9" -+ $"86C113B986C396BF56C57BBC22C57B47C57BC526C142C526C396C526C113C4EB" -+ $"C0CAC511C0E8C4C4C0AB0207C459C0C5C48EC0B9C459C0C5BA53C0C5BA53C0C5" -+ $"BA1EC0B9B9C1C0E3B9E9C0C4B99CC100B986C15AB986C12CB986C3AFBF56C594" -+ $"BC22C59447C594C526C15AC526C3AFC526C12CC4EBC0E3C511C100C4C4C0C402" -+ $"05BA53C105BA53C105BA29C105BA07C141BA07C120BA07C358BF56C50ABC69C5" -+ $"0AC244C50AC4A6C141C4A6C358C4A6C120C45AC105C484C105C45AC1050204BB" -+ $"43B95BBA1BB95BBC6CB95BBD55BC63BD55BAB0BD55BE15BB43BF6BBC6CBF6BBA" -+ $"1BBF6BB931BC63B931BE15B931BAB00204BB4431BA4131BC4731BD12BC6BBD12" -+ $"BAF0BD12BDE5BB44BF0FBC47BF0FBA41BF0FB976BC6BB976BDE5B976BAF00204" -+ $"BB56BA02BA5FBA02BC4DBA02BD0FBC88BD0FBB1EBD0FBDF1BB56BF0DBC4DBF0D" -+ $"BA5FBF0DB99DBC88B99DBDF1B99DBB1E0205BA50BC7FBA30BD15BA8CBB5DBC1A" -+ $"BA9ABB54BA8EBBD7BA62BB38BA4CBB89BA45BA62BA5FB9E6BCA6B9CABB6CB9F3" -+ $"BD38BA6ABE19BA24BDB9BA3DBDA60204BBC2BC51BB41BC51BC43BC51BCA9BD37" -+ $"BCA9BCB6BCA9BDB9BBC2BE1EBC43BE1EBB41BE1EBADBBD37BADBBDB9BADBBCB6" -+ $"0204BBB6BC65BB52BC65BC1BBC65BC6BBD1ABC6BBCB5BC6BBD7FBBB6BDCEBC1B" -+ $"BDCEBB52BDCEBB02BD1ABB02BD7FBB02BCB50204C315B95BC1ECB95BC43EB95B" -+ $"C527BC63C527BAB0C527BE15C315BF6BC43EBF6BC1ECBF6BC103BC63C103BE15" -+ $"C103BAB00204C31431C21131C41731C4E2BC6BC4E2BAF0C4E2BDE5C314BF0FC4" -+ $"17BF0FC211BF0FC146BC6BC146BDE5C146BAF00204C302BA02C20BBA02C3F9BA" -+ $"02C4BBBC88C4BBBB1EC4BBBDF1C302BF0DC3F9BF0DC20BBF0DC149BC88C149BD" -+ $"F1C149BB1E0205C408BC7FC428BD15C3CCBB5DC23EBA9AC305BA8EC281BA62C3" -+ $"1FBA4CC2CFBA45C3F6BA5FC472BCA6C48EBB6CC465BD38C3EEBE19C434BDB9C4" -+ $"1BBDA60204C296BC50C215BC50C317BC50C37DBD37C37DBCB6C37DBDB9C296BE" -+ $"1FC317BE1FC215BE1FC1AFBD37C1AFBDB9C1AFBCB60204C2A1BC65C23CBC65C3" -+ $"06BC6549BD1A49BCB549BD7FC2A1BDCEC306BDCEC23CBDCEC1EDBD1AC1EDBD7F" -+ $"C1EDBCB50F0A000100023F6E570000000000003F0079920DF9AFA7960A010101" -+ $"023F6E570000000000003F0079920DF9AFA7960A020102023F6E570000000000" -+ $"003F0079920DF9AFA7960A000103023F6E570000000000003F0079920DF9AFA7" -+ $"960A000104023F6E570000000000003F0079920DF9AFA7960A00020506023F6E" -+ $"570000000000003F0079920DF9AFA7960A02020708023F6E570000000000003F" -+ $"0079920DF9AFA7960A000109023F6E570000000000003F0079920DF9AFA7960A" -+ $"03011E000A03011F000A0A0120023EBA690000000000003E684D48AAA149C7C1" -+ $"0A0B0121023EBA690000000000003E684D48AAA149C7C10A0C022223023EBA69" -+ $"0000000000003E684D48AAA149C7C10A0D022425023EBA690000000000003E68" -+ $"4D48AAA149C7C10A0E0126023EBA690000000000003E684D48AAA149C7C1" -+};' >/tmp/linguist.rdef -+rc /tmp/linguist.rdef -+xres -o "$QTROOT/boot/common/bin/linguist" /tmp/linguist.rsrc -+mimeset -f "$QTROOT/boot/common/bin/linguist" -+ -+###################################################################### -+echo " Qt Help Conversion Wizard" -+###################################################################### -+ -+echo 'resource app_signature "application/x-vnd.qhelpconverter"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ major = 4, -+ middle = 7, -+ minor = 0, -+ variety = 0, -+ internal = 0, -+ short_info = "Qt Help Conversion Wizard", -+ long_info = "Qt Help Conversion Wizard" -+}; -+ -+resource vector_icon { -+$"6E6369660A030062250380C34205FF04003303663333020106023DDD49000000" -+ $"0000003DDD4949EEA449EEA400B00000FF993300020106043DA9380000000000" -+ $"003DA93849EEA449EEA400FFFFFF2FFF93936CFF0000FFCF000004FF7F04FF66" -+ $"04614C1E060AEFE707B93AB30DB93AB30DB8EB20B852B302B89DB2FCB852B302" -+ $"B852B302B639B327B650B325B464B34D20B6E320B4CE20B6E3CF6BB50DD154C9" -+ $"ABCDDDC9ABCDDDCB16CD9ECC35CA23CC35CBF2CC35CA23B6290606EF0BCC35CA" -+ $"23CC35CA23CC35CBF2C9ABCDDDCB16CD9EC9ABCDDDB50DD154B50DB6C2B50DB6" -+ $"C2B50DB457B93AB30DB6FBB2AEB93AB30DCC35B62906149AF9FFFF99C5DBB9A3" -+ $"C785B9D1BCBDC965BCDFBEB4C785BE9EC785C551C785C551C785C5E6C7B7C671" -+ $"C796C646C7D4C699C840C6ACC803C6ACC846C6ACC853C6ACC84CC6ACC8B1C6A6" -+ $"C987C656C918C689C987C656C987C805C987C805C8C9C859C758C89AC80FC88B" -+ $"C73DC89CC70BC89DC723C89DC665C89DC58FC80CC5E6C86DC52AC79BC4F8C5ED" -+ $"C4F8C6E5C4F8C5EDBE80C412BE75BC7EC52ABC930A04C965BEB4C785BE9EC785" -+ $"BEA8C886BEB40205C7E9C69BC826C68CC802C6A7C840C6AC55C6ACC846C6ACC8" -+ $"53C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C656C8A9C656C8A9C656C8" -+ $"65C675060D9FF1FE03C58FC80CC5E6C86DC52AC79BC4F8C5EDC4F8C6E5C4F8C5" -+ $"EDBE80C412BE75BC7EC333C333BCEFC333BCEFC353BD68C37FBE79C36CBDEBC3" -+ $"7FBE79C419BE80C419C5EDC419C5EDC419C6E5C4B1C80CC44CC79BC507C86DC6" -+ $"2CC89DC586C89DC62CC89DC70BC89DC70BC89DC665C89D0A04C5DBB9A3C4FCB9" -+ $"A3C450BC83C52ABC93000BC02DC624C02DC624C084C544C0AFC0FEC0AFC38DC0" -+ $"AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BAE8BE9CBAD8BE82BAD7BE" -+ $"8FBAD7BDE1BAD7BD0FBBF1BD66BB35BCB2BCBEBC83C0ECBC83BE68BC83C35ABD" -+ $"0DC617BCB1C514BD65C70EBE92C789BDE7C789BE9AC789BEA9C788BEA1C788BF" -+ $"55C77DC02DC624BFD6C706C02DC6240211C2C7C6AFC35DC54DC22EC817C008C9" -+ $"6FC146C902C028CA13C099CABCC0595BC0CBCAE9C17FCB00C118CB00C19DCB00" -+ $"C1DFCAFAC1BDCAFEC1DFCAFAC1DFCCE0C1DFCCE0C1DFCCE0C103CCFDC103CCFD" -+ $"C0C2CD05C049CD09C084CD09BF88CD09BE76CC7CBEECCCDBBDDBCBFFBD1EC9A9" -+ $"BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6C0DDB8F6C39AB8F6BDE8" -+ $"BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBE2BB89BBEA9B8A6BE69B89F" -+ $"C064B8D9C275BB14C1A4B9AAC342BC75C3A7C10BC3A7BE71C3A7C36D0203C17F" -+ $"CB00C162CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC12CCAFAC12CCAFAC145" -+ $"CAFE020DBF44BC40BEFCBB85BF9BBD1EBFC5C0FEBFC5BEB2BFC5C38DBF43C624" -+ $"BF9AC544BEFDC6D9BE20C774BE9CC749BE44C782BE92C789BE6AC789BE9AC789" -+ $"BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C084C544C0AFC0FEC0AFC38D" -+ $"C0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF57BAE8BE9CBAD8BE82BAD7" -+ $"BE8FBAD7BE5ABAD7BE10BAE9BE34BADDBE10BAE9BE10BAE9BE10BAE9BE95BB12" -+ $"0222BEEDCCC5BEEECCC6BEE9CCC4BEE1CCC0BEE5CCC2BEE1CCBFBEE0CCBFBEE0" -+ $"CCBFBEDCCCBDBED4CCB9BED8CCBBBED4CCB9BED2CCB8BED3CCB8BECFCCB6BEC8" -+ $"CCB3BECBCCB4BEC7CCB2BEC5CCB1BEC6CCB1BEC2CCAFBEBCCCACBEBFCCADBEBA" -+ $"CCABBEB8CCA9BEB9CCAABEB5CCA8BEB0CCA4BEB2CCA6BEAECCA3BEAACCA1BEAC" -+ $"CCA2BEA8CCA0BEA4CC9DBEA6CC9EBEA2CC9BBE9ECC99BEA0CC9ABE9CCC97BE98" -+ $"CC95BE9ACC96BE96CC93BE91CC90BE93CC92BE90CC8FBE8DCC8D3DCC8EBE8ACC" -+ $"8BBE84CC87BE87CC89BE83CC86BE81CC85BE82CC85BE7ECC82BE76CC7CBE7ACC" -+ $"7FBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2B8F6C0" -+ $"DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89BBDF0B8" -+ $"9BBD03B89BBD03B89BBB8CB89BB98BBA58BA61B92EB88DBBBAB80CC0DDB80CBD" -+ $"E8B80CC39AB924C721B86AC5B2B9DAC88ABC34C9A9BAE2C961BC7ECB0EBD8CCC" -+ $"7CBCF0CBFFBE02CCDBBF5FCD09BE9ECD09BF63CD09BF6ACD09BF67CD09BF6ACD" -+ $"09C037CD09C037CD09BFB9CD07BEEECCC6BF4BCCF1BEEECCC60204B3A5BFF7B3" -+ $"A5B92CB3A5C6C2BFF7CC48B92CCC48C6C2CC48CC48BFF7CC48C6C2CC48B92CBF" -+ $"F7B3A5C6C2B3A5B92CB3A50204BB6DBFF7BB6DC277BB6DBD76BFF7BB6DBD76BB" -+ $"6DC277BB6DC481BFF7C481BD76C481C277BFF7C481C277C481BD76C481020420" -+ $"BF8820B89F20C671BF88CC11B89FCC11C671CC11CC11BF88CC11C671CC11B89F" -+ $"BF8820C67120B89F200204BB36BF88BB36C1EABB36BD26BF88BB36BD26BB36C1" -+ $"EABB36C3DBBF88C3DBBD26C3DBC1EABF88C3DBC1EAC3DBBD26C3DB0204B337BF" -+ $"88B337B8BDB337C653BF88CBDAB8BDCBDAC653CBDACBDABF88CBDAC653CBDAB8" -+ $"BDBF88B337C653B337B8BDB3370204BAFEBF88BAFEC209BAFEBD08BF88BAFEBD" -+ $"08BAFEC209BAFEC412BF88C412BD08C412C209BF88C412C209C412BD08C41202" -+ $"04BF88B3DDC5FAB3DDB916B3DDB3DDBF88B3DDB916B3DDC5FABF88CB34B916CB" -+ $"34C5FACB34CB34BF88CB34C5FACB34B9160204BF88C4B8C264C4B8BCACC4B8BA" -+ $"58BF88BA58C264BA58BCACBF88BA58BCACBA58C264BA58C4B8BF88C4B8BCACC4" -+ $"B8C2640206BF88B63DB9D4B63DC53CB63DCA4FC04AC9EBBAAFCA53C00ACA56BF" -+ $"88CA56BFC9CA56B993BF88B4BAC57DB4BAB993B4BAB4BABF88B4BAB993B4BABF" -+ $"C9B4C2C04AB4BDC00AB525BAAF0206BF88C718BC32C718C2DEC718C595C10BC5" -+ $"95C462C595C0CAC589C04AC591C089C529C345BF88C595C29DC595BC74C595B9" -+ $"88C04AB9E7C345B980C089B97BC10BB97BC0CAB97BC4620206BF88CB34BD68CB" -+ $"34C1A8CB34C55EC9A3C3A6CAA1C55EC9A3C220C405C220C405C15CC477BF88C4" -+ $"B8C07AC4B8BE97C4B8BCF1C405BDB4C477BCF1C405B9B3C9A3B9B3C9A3BB6ACA" -+ $"A10206BF88B3DDC1A8B3DDBD68B3DDB9B3B56DBB6AB46FB9B3B56DBCF1BB0BBC" -+ $"F1BB0BBDB4BA9ABF88BA58BE97BA58C07ABA58C220BB0BC15CBA9AC220BB0BC5" -+ $"5EB56DC55EB56DC3A6B46F0206C4B8BF88C4B8BE97C4B8C07AC405C220C477C1" -+ $"5CC405C220C9A3C55EC9A3C55ECAA1C3A6CB34BF88CB34C1A8CB34BD68C9A3B9" -+ $"B3CAA1BB6AC9A3B9B3C405BCF1C405BCF1C477BDB40206BA58BF88BA58C07ABA" -+ $"58BE97BB0BBCF1BA9ABDB4BB0BBCF1B56DB9B3B56DB9B3B46FBB6AB3DDBF88B3" -+ $"DDBD68B3DDC1A8B56DC55EB46FC3A6B56DC55EBB0BC220BB0BC220BA9AC15C02" -+ $"06BF88B90DC264B90DBCACB90DBA58BE3CBA58BB60BA58BE75BA63BEE2BA5CBE" -+ $"ACBAB5BC54BF88BA58BCE4BA58C22CBA58C4ADBEE2C45BBC54C4B4BEACC4B8BE" -+ $"3CC4B8BE75C4B8BB600206BF88C9E8C5C2C9E8B94EC9E8B3E2BEE2B438C507B3" -+ $"DFBF19B3DDBF88B3DDBF50B3DDC5FABF88CB34B916CB34C5FACB34CB34BF88CB" -+ $"34C5FACB34BF50CB2FBEE2CB32BF19CAD9C5070206BF88CB34B93ECB34C5D2CB" -+ $"34CB31BFFECAF2C639CB30BFE9CB2F40CB30BFD4CAD9C5E4BF88CAC5C5C2CAC5" -+ $"B94ECAC5B3E240B438C5E4B3E0BFD4B3E0BFFEB3E1BFE9B41EC6390206BA58BF" -+ $"1ABA58BC3DBA58BF2ABA5ABF49BA59BF39BA7BBC8ABF88BA58BCC1BA58C24FBA" -+ $"58C4B6BF49C495BC8AC4B7BF39C4B8BF1AC4B8BF2AC4B8BC3DBF88B9EAC264B9" -+ $"EABCACB9EA150A000100023F6E570000000000003F0079920DF9AFA7960A0101" -+ $"01023F6E570000000000003F0079920DF9AFA7960A020102023F6E5700000000" -+ $"00003F0079920DF9AFA7960A000103023F6E570000000000003F0079920DF9AF" -+ $"A7960A000104023F6E570000000000003F0079920DF9AFA7960A00020506023F" -+ $"6E570000000000003F0079920DF9AFA7960A02020708023F6E57000000000000" -+ $"3F0079920DF9AFA7960A000109023F6E570000000000003F0079920DF9AFA796" -+ $"0A00020A0B023D6A390000000000003D3C934A3EB74A17E90A03020C0D023DD6" -+ $"F90000000000003DF73F4A20004A10000A04020E0F023DD6F90000000000003D" -+ $"F73F4A20004A10000A05021011023DD6F90000000000003DF73F4A20004A1000" -+ $"0A06021213023DD6F90000000000003DF73F4A20004A10000A070114023DD6F9" -+ $"0000000000003DF73F4A20004A10000A080115023DD6F90000000000003DF73F" -+ $"4A20004A10000A020116023DD6F90000000000003DF73F4A20004A10000A0201" -+ $"17023DD6F90000000000003DF73F4A20004A10000A020118023DD6F900000000" -+ $"00003DF73F4A20004A10000A020119023DD6F90000000000003DF73F4A20004A" -+ $"10000A09021A1B023DD6F90000000000003DF73F4A20004A10000A09021C1D02" -+ $"3DD6F90000000000003DF73F4A20004A1000" -+};' >/tmp/qhelpconverter.rdef -+rc /tmp/qhelpconverter.rdef -+xres -o "$QTROOT/boot/common/bin/qhelpconverter" /tmp/qhelpconverter.rsrc -+mimeset -f "$QTROOT/boot/common/bin/qhelpconverter" -+ -+###################################################################### -+echo " Qt QML Viewer" -+###################################################################### -+ -+echo 'resource app_signature "application/x-vnd.qmlviewer"; -+ -+resource app_flags B_MULTIPLE_LAUNCH; -+ -+resource app_version { -+ major = 4, -+ middle = 7, -+ minor = 0, -+ variety = 0, -+ internal = 0, -+ short_info = "Qt QML Viewer", -+ long_info = "Qt QML Viewer" -+}; -+ -+resource file_types message { -+ "types" = "text/x-qml", -+ "types" = "application/x-qml" -+}; -+ -+resource vector_icon { -+ $"6E63696603030062250380C34205FF0C060AEFE707B93AB30DB93AB30DB8EB20" -+ $"B852B302B89DB2FCB852B302B852B302B639B327B650B325B464B34D20B6E320" -+ $"B4CE20B6E3CF6BB50DD154C9ABCDDDC9ABCDDDCB16CD9ECC35CA23CC35CBF2CC" -+ $"35CA23B6290606EF0BCC35CA23CC35CA23CC35CBF2C9ABCDDDCB16CD9EC9ABCD" -+ $"DDB50DD154B50DB6C2B50DB6C2B50DB457B93AB30DB6FBB2AEB93AB30DCC35B6" -+ $"2906149AF9FFFF99C5DBB9A3C785B9D1BCBDC965BCDFBEB4C785BE9EC785C551" -+ $"C785C551C785C5E6C7B7C671C796C646C7D4C699C840C6ACC803C6ACC846C6AC" -+ $"C853C6ACC84CC6ACC8B1C6A6C987C656C918C689C987C656C987C805C987C805" -+ $"C8C9C859C758C89AC80FC88BC73DC89CC70BC89DC723C89DC665C89DC58FC80C" -+ $"C5E6C86DC52AC79BC4F8C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC52ABC93" -+ $"0A04C965BEB4C785BE9EC785BEA8C886BEB40205C7E9C69BC826C68CC802C6A7" -+ $"C840C6AC55C6ACC846C6ACC853C6ACC84CC6ACC8B1C6A6C987C656C918C689C9" -+ $"87C656C8A9C656C8A9C656C865C675060D9FF1FE03C58FC80CC5E6C86DC52AC7" -+ $"9BC4F8C5EDC4F8C6E5C4F8C5EDBE80C412BE75BC7EC333C333BCEFC333BCEFC3" -+ $"53BD68C37FBE79C36CBDEBC37FBE79C419BE80C419C5EDC419C5EDC419C6E5C4" -+ $"B1C80CC44CC79BC507C86DC62CC89DC586C89DC62CC89DC70BC89DC70BC89DC6" -+ $"65C89D0A04C5DBB9A3C4FCB9A3C450BC83C52ABC93000BC02DC624C02DC624C0" -+ $"84C544C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9BF" -+ $"57BAE8BE9CBAD8BE82BAD7BE8FBAD7BDE1BAD7BD0FBBF1BD66BB35BCB2BCBEBC" -+ $"83C0ECBC83BE68BC83C35ABD0DC617BCB1C514BD65C70EBE92C789BDE7C789BE" -+ $"9AC789BEA9C788BEA1C788BF55C77DC02DC624BFD6C706C02DC6240211C2C7C6" -+ $"AFC35DC54DC22EC817C008C96FC146C902C028CA13C099CABCC0595BC0CBCAE9" -+ $"C17FCB00C118CB00C19DCB00C1DFCAFAC1BDCAFEC1DFCAFAC1DFCCE0C1DFCCE0" -+ $"C1DFCCE0C103CCFDC103CCFDC0C2CD05C049CD09C084CD09BF88CD09BE76CC7C" -+ $"BEECCCDBBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC721BAC4C88AB955C5B2" -+ $"B8F6C0DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB92EBDEEB89BBC76B89B" -+ $"BE2BB89BBEA9B8A6BE69B89FC064B8D9C275BB14C1A4B9AAC342BC75C3A7C10B" -+ $"C3A7BE71C3A7C36D0203C17FCB00C162CB00C19DCB00C1DFCAFAC1BDCAFEC1DF" -+ $"CAFAC12CCAFAC12CCAFAC145CAFE020DBF44BC40BEFCBB85BF9BBD1EBFC5C0FE" -+ $"BFC5BEB2BFC5C38DBF43C624BF9AC544BEFDC6D9BE20C774BE9CC749BE44C782" -+ $"BE92C789BE6AC789BE9AC789BEA9C788BEA1C788BF55C77DC02DC624BFD6C706" -+ $"C084C544C0AFC0FEC0AFC38DC0AFBEB2C02EBC40C085BD1EBFD8BB60BEA9BAD9" -+ $"BF57BAE8BE9CBAD8BE82BAD7BE8FBAD7BE5ABAD7BE10BAE9BE34BADDBE10BAE9" -+ $"BE10BAE9BE10BAE9BE95BB120222BEEDCCC5BEEECCC6BEE9CCC4BEE1CCC0BEE5" -+ $"CCC2BEE1CCBFBEE0CCBFBEE0CCBFBEDCCCBDBED4CCB9BED8CCBBBED4CCB9BED2" -+ $"CCB8BED3CCB8BECFCCB6BEC8CCB3BECBCCB4BEC7CCB2BEC5CCB1BEC6CCB1BEC2" -+ $"CCAFBEBCCCACBEBFCCADBEBACCABBEB8CCA9BEB9CCAABEB5CCA8BEB0CCA4BEB2" -+ $"CCA6BEAECCA3BEAACCA1BEACCCA2BEA8CCA0BEA4CC9DBEA6CC9EBEA2CC9BBE9E" -+ $"CC99BEA0CC9ABE9CCC97BE98CC95BE9ACC96BE96CC93BE91CC90BE93CC92BE90" -+ $"CC8FBE8DCC8D3DCC8EBE8ACC8BBE84CC87BE87CC89BE83CC86BE81CC85BE82CC" -+ $"85BE7ECC82BE76CC7CBE7ACC7FBDDBCBFFBD1EC9A9BD68CB0EBBCCC961BA0EC7" -+ $"21BAC4C88AB955C5B2B8F6C0DDB8F6C39AB8F6BDE8BA75BA58B977BBBABB4BB9" -+ $"2EBDEEB89BBC76B89BBDF0B89BBD03B89BBD03B89BBB8CB89BB98BBA58BA61B9" -+ $"2EB88DBBBAB80CC0DDB80CBDE8B80CC39AB924C721B86AC5B2B9DAC88ABC34C9" -+ $"A9BAE2C961BC7ECB0EBD8CCC7CBCF0CBFFBE02CCDBBF5FCD09BE9ECD09BF63CD" -+ $"09BF6ACD09BF67CD09BF6ACD09C037CD09C037CD09BFB9CD07BEEECCC6BF4BCC" -+ $"F1BEEECCC6090A000100023F8EB50000000000003F43B74400003FFD4E0A0101" -+ $"01023F8EB50000000000003F43B74400003FFD4E0A020102023F8EB500000000" -+ $"00003F43B74400003FFD4E0A000103023F8EB50000000000003F43B74400003F" -+ $"FD4E0A000104023F8EB50000000000003F43B74400003FFD4E0A00020506023F" -+ $"8EB50000000000003F43B74400003FFD4E0A02020708023F8EB5000000000000" -+ $"3F43B74400003FFD4E0A000109023F8EB50000000000003F43B74400003FFD4E" -+ $"0A00020A0B023F8EB50000000000003F43B74400003FFD4E" -+};' >/tmp/qmlviewer.rdef -+rc /tmp/qmlviewer.rdef -+xres -o "$QTROOT/boot/common/bin/qmlviewer" /tmp/qmlviewer.rsrc -+mimeset -f "$QTROOT/boot/common/bin/qmlviewer" -+ -+###################################################################### -+echo " Qt Config" -+###################################################################### -+ -+echo 'resource app_signature "application/x-vnd.qtconfig"; -+ -+resource app_flags B_SINGLE_LAUNCH; -+ -+resource app_version { -+ major = 4, -+ middle = 7, -+ minor = 0, -+ variety = 0, -+ internal = 0, -+ short_info = "Qt Config", -+ long_info = "Qt Configuration" -+}; -+ -+resource vector_icon { -+ $"6E6369660503076324037FC24105FF03FFC96903FFB23D120206B5BEB707B536" -+ $"2CB633B636B808B600B73BB634B74CB695B69AB859B683B751B68BBD18B68CC6" -+ $"98B6B0C1D8B611C63CB55AC544B53DC604B549C162B552B99BB55CBD7EB55AB8" -+ $"BE0206B84DBEAAB86CC012B83FBCDFB9F1B97DB827BA84B9F1B97DB9D031B9D0" -+ $"31B95DBAB7B8D7BCBFB8E7BBAFB8B7BE98BA29C21EB8CBC0B5BA29C21EBA5DC2" -+ $"5FBA5DC25FB8B3C2070204BF62BB21BF62BB21BF16BA7FC007B981BF98B9EAC0" -+ $"07B981BFF9B9DABFF9B9DABFE3BA57BF9BBB4ABFCDBAD5BF9BBB4A0203BC34BA" -+ $"5FBCD4BCAFBD21BB14BD2DBD61BD2CBC51BD27BEC2BC4EC16FBD5AC059BCB5BF" -+ $"180207BE8FBB35BE8FBB35BEACBB56BF01BBBBBEE5BB99BF45BC41BF88BD65BF" -+ $"91BCCBBF88BEE8BFCEC1ECBF8EC06DBFCEC1ECBFD8C237BFD8C237BE6DC0B2BE" -+ $"D5BCAABF6ABE7BBEC4BC49BE9EBB89BEB2BBE9BE9EBB890204C71DBD22C736BD" -+ $"A4C767BCD4C7EDBC2DC7ACBC81C7EABD15C816BEE3C7FCBDFCC7ECBED4C76FBE" -+ $"A8C799BEB6C754BE250204CC18BCAFCC3DBCCBCC35BCA2CC88BC7BCC6CBC88CC" -+ $"99BC97CCCDBCEDCCBBBCD0CCCDBCEDCCA9BD1CCCA9BD1CCC84BD010203BA8AC2" -+ $"60BAB9C313BB18C2A3BB94C3BDBB55C337BB94C3BDBBBAC414BBBAC414BAFBC3" -+ $"CD0204C139C355C166C38EC189C2FAC22CC246C1DAC29FC229C277C21FC30AC2" -+ $"22C2D9C20DC370C1EAC43BC1FDC3D645C4010203C630C65CC650C678C6A2C63C" -+ $"C790C627C719C631C7BEC694C6B1C6CDC70BC6E1C691C6B1000CB808B600B808" -+ $"B600BBE6B67FC399B7CCBFBCB740C3BFBA8DC3E2C011C34DBD5BC335C100C21F" -+ $"C30AC297C1FDC222C2D9C22CC246C229C277C1DAC29FC139C355C189C2FAC128" -+ $"C33FC0F3C2FDC104C313BFDDC3BEBE23C5C1BEE0C4A7BB94C5CAB689C6DBB90F" -+ $"C674B689C6DBB68CC698B68CC698B6B0C1D8B69AB859B68BBD18B683B751B808" -+ $"B600B74CB695B808B600021CB9D031BAB9B96FB9D031B9F1B97DB9F1B97DB827" -+ $"BA84B84DBEAAB83FBCDFB86CC012BA5DC25FB8B3C207BA5DC25FBA29C21EBA29" -+ $"C21EBA41C22EBA8AC260BA72C24FBAB9C313BBBAC414BAFBC3CDBBBAC414BB94" -+ $"C3BDBB94C3BDBC18C464BDC4C45DBCFDC485BE0FC38FBCC8C29ABD34C323BEDA" -+ $"C169BED5BCAABEF2BEC6BF6ABE7BBFD8C237BE6DC0B2BFD8C237BFCEC1ECBFCE" -+ $"C1ECC091C1E5C210C19FC152C1CDC1BAC13FC10EC07DC156C0E9C0EFBF38C0FE" -+ $"BCACC108BDF2C15738C209BC57C1B0BC73C209BC27C205BB96C207BBC6C1AEBB" -+ $"85C0FFBB63C156BB74C0FDBADEC0F7B9D3C0FBBA58C0B7B9D4BFF9B9DAC038B9" -+ $"D8BFF9B9DAC007B981C007B981BF98B9EABF62BB21BF16BA7FBF62BB21BF9BBB" -+ $"4ABF9BBB4ABF75BB66BF01BBBBBF28BB9FBEE5BB99BE8FBB35BEACBB56BE8FBB" -+ $"35BE9EBB89BE9EBB89BE4ABA9ABCB1B957BDB1B9A5BBB7B8ED0205BACDBE05BA" -+ $"DCBF5CBAD4BC9EBC25BA18BAAABAD6BC25BA18BC34BA5FBC34BA5FBCD4BCAFBC" -+ $"4EC16FBCB5BF18BC4EC16FBC45C1B1BC45C1B1BAC2C11C000BB9D031B9D031BA" -+ $"B9B96FBCB1B957BBB7B8EDBDB1B9A5BE9EBB89BE4ABA9ABEB2BBE9BED5BCAABE" -+ $"C4BC49BEF2BEC6BCC8C29ABEDAC169BD34C323BDC4C45DBE0FC38FBCFDC485BB" -+ $"94C3BDBC18C464BB55C337BA8AC260BB18C2A3BA72C24FBA29C21EBA41C22EB8" -+ $"CBC0B5B8D7BCBFB8B7BE98B8E7BBAFB9D031B95DBAB7B9D0310206BACDBE05BA" -+ $"D4BC9EBADCBF5CBC45C1B1BAC2C11CBC45C1B1BC4EC16FBC4EC16FBD5AC059BD" -+ $"2DBD61BD27BEC2BD2CBC51BC34BA5FBD21BB14BC34BA5FBC25BA18BC25BA18BA" -+ $"AABAD6020CBFF9B9DABFE3BA57C038B9D8C0F7B9D3C0B7B9D4C0FBBA58C0FFBB" -+ $"63C0FDBADEC156BB74C205BB96C1AEBB85C207BBC6C209BC57C209BC27C1B0BC" -+ $"73C0FEBCACC15738C108BDF2C10EC07DC0EFBF38C156C0E9C210C19FC1BAC13F" -+ $"C152C1CDBFCEC1ECC091C1E5BF8EC06DBF88BD65BF88BEE8BF91BCCBBF01BBBB" -+ $"BF45BC41BF28BB9FBF9BBB4ABF75BB66BFCDBAD50212C7EDBC2DC7EABD15C9C2" -+ $"BB14CDE2BA16CBBCBA3ECD99BAD4CD0EBC54CD4FBB93CCEDBC5ECC88BC7BCCA9" -+ $"BC71CC6CBC88CC18BCAFCC35BCA2CC3DBCCBCCA9BD1CCC84BD01CCA9BD1CCCF1" -+ $"BD33CCF1BD33CC7DBE87CBA3C136CC5BBFFDCB2AC222C93FC2D3CA15C25BC9B5" -+ $"C2EACAA2C31BCA2CC302CA24C47DC790C627C935C613C719C631C630C65CC6A2" -+ $"C63CC650C678C6B1C6CDC691C6B1C6B1C6CDC704C711C704C711C53AC85DC0CD" -+ $"C835C2ED56C330C72BC6C1C347C567C589C795C1E5C76FBEA8C7ACC037C799BE" -+ $"B6C816BEE3C7ECBED4C7FCBDFC020EC3E2C011C335C100C4E3BF09C71DBD22C5" -+ $"C2BDB8C736BDA4C76FBEA8C754BE25C7ACC037C6C1C347C795C1E5C567C589C0" -+ $"CDC835C330C72BBFD7C808BE02C755BEEAC7B0BBDFC875B712C8DFB96DC89CB6" -+ $"FAC8A4B6B2C7F5B6CAC82FB8C4C812BCD6C728BAE0C7D8BD88C6FEBE23C5C1BD" -+ $"C1C644BEE0C4A7C0F3C2FDBFDDC3BEC104C313C139C355C128C33FC166C38EC1" -+ $"EAC43B45C401C1FDC3D6C21FC30AC20DC370C297C1FD100A000100201B210A00" -+ $"0101201B210A000102201B210A000103201B210A000104201B210A000105201B" -+ $"210A000106201B210A000107201B210A000108201B210A000109201B210A0102" -+ $"0A0B201B210A01010C201B210A02020D0E201B210A02010F201B210A03011020" -+ $"1B210A040111201B21" -+};' >/tmp/qtconfig.rdef -+rc /tmp/qtconfig.rdef -+xres -o "$QTROOT/boot/common/bin/qtconfig" /tmp/qtconfig.rsrc -+mimeset -f "$QTROOT/boot/common/bin/qtconfig" -+ -+ -+###################################################################### -+echo "Make menu items" -+###################################################################### -+mkdir -p "$QTROOT/boot/home/config/be/Preferences" -+mkdir -p "$QTROOT/boot/home/config/be/Qt/Development" -+ln -s -f "/boot/common/data/licenses/LGPL v2.1" "$QTROOT/boot/home/config/be/Qt/LGPL v2.1" -+ln -s -f "/boot/common/bin/qtconfig" "$QTROOT/boot/home/config/be/Preferences/Qt Config" -+ln -s -f "/boot/common/bin/assistant" "$QTROOT/boot/home/config/be/Qt/Development/Qt Assistant" -+ln -s -f "/boot/common/bin/designer" "$QTROOT/boot/home/config/be/Qt/Development/Qt Designer" -+ln -s -f "/boot/common/bin/qhelpconverter" "$QTROOT/boot/home/config/be/Qt/Development/Qt Help Conversion Wizard" -+ln -s -f "/boot/common/bin/linguist" "$QTROOT/boot/home/config/be/Qt/Development/Qt Linguist" -+ln -s -f "/boot/common/bin/qmlviewer" "$QTROOT/boot/home/config/be/Qt/Development/Qt QML Viewer" -+ -+ -+###################################################################### -+# create GNU Free Documentation License file -+###################################################################### -+mkdir -p "$QTROOT/boot/common/data/licenses" -+echo " -+ GNU Free Documentation License -+ Version 1.3, 3 November 2008 -+ -+ -+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. -+ -+ Everyone is permitted to copy and distribute verbatim copies -+ of this license document, but changing it is not allowed. -+ -+0. PREAMBLE -+ -+The purpose of this License is to make a manual, textbook, or other -+functional and useful document \"free\" in the sense of freedom: to -+assure everyone the effective freedom to copy and redistribute it, -+with or without modifying it, either commercially or noncommercially. -+Secondarily, this License preserves for the author and publisher a way -+to get credit for their work, while not being considered responsible -+for modifications made by others. -+ -+This License is a kind of \"copyleft\", which means that derivative -+works of the document must themselves be free in the same sense. It -+complements the GNU General Public License, which is a copyleft -+license designed for free software. -+ -+We have designed this License in order to use it for manuals for free -+software, because free software needs free documentation: a free -+program should come with manuals providing the same freedoms that the -+software does. But this License is not limited to software manuals; -+it can be used for any textual work, regardless of subject matter or -+whether it is published as a printed book. We recommend this License -+principally for works whose purpose is instruction or reference. -+ -+ -+1. APPLICABILITY AND DEFINITIONS -+ -+This License applies to any manual or other work, in any medium, that -+contains a notice placed by the copyright holder saying it can be -+distributed under the terms of this License. Such a notice grants a -+world-wide, royalty-free license, unlimited in duration, to use that -+work under the conditions stated herein. The \"Document\", below, -+refers to any such manual or work. Any member of the public is a -+licensee, and is addressed as \"you\". You accept the license if you -+copy, modify or distribute the work in a way requiring permission -+under copyright law. -+ -+A \"Modified Version\" of the Document means any work containing the -+Document or a portion of it, either copied verbatim, or with -+modifications and/or translated into another language. -+ -+A \"Secondary Section\" is a named appendix or a front-matter section of -+the Document that deals exclusively with the relationship of the -+publishers or authors of the Document to the Document's overall -+subject (or to related matters) and contains nothing that could fall -+directly within that overall subject. (Thus, if the Document is in -+part a textbook of mathematics, a Secondary Section may not explain -+any mathematics.) The relationship could be a matter of historical -+connection with the subject or with related matters, or of legal, -+commercial, philosophical, ethical or political position regarding -+them. -+ -+The \"Invariant Sections\" are certain Secondary Sections whose titles -+are designated, as being those of Invariant Sections, in the notice -+that says that the Document is released under this License. If a -+section does not fit the above definition of Secondary then it is not -+allowed to be designated as Invariant. The Document may contain zero -+Invariant Sections. If the Document does not identify any Invariant -+Sections then there are none. -+ -+The \"Cover Texts\" are certain short passages of text that are listed, -+as Front-Cover Texts or Back-Cover Texts, in the notice that says that -+the Document is released under this License. A Front-Cover Text may -+be at most 5 words, and a Back-Cover Text may be at most 25 words. -+ -+A \"Transparent\" copy of the Document means a machine-readable copy, -+represented in a format whose specification is available to the -+general public, that is suitable for revising the document -+straightforwardly with generic text editors or (for images composed of -+pixels) generic paint programs or (for drawings) some widely available -+drawing editor, and that is suitable for input to text formatters or -+for automatic translation to a variety of formats suitable for input -+to text formatters. A copy made in an otherwise Transparent file -+format whose markup, or absence of markup, has been arranged to thwart -+or discourage subsequent modification by readers is not Transparent. -+An image format is not Transparent if used for any substantial amount -+of text. A copy that is not \"Transparent\" is called \"Opaque\". -+ -+Examples of suitable formats for Transparent copies include plain -+ASCII without markup, Texinfo input format, LaTeX input format, SGML -+or XML using a publicly available DTD, and standard-conforming simple -+HTML, PostScript or PDF designed for human modification. Examples of -+transparent image formats include PNG, XCF and JPG. Opaque formats -+include proprietary formats that can be read and edited only by -+proprietary word processors, SGML or XML for which the DTD and/or -+processing tools are not generally available, and the -+machine-generated HTML, PostScript or PDF produced by some word -+processors for output purposes only. -+ -+The \"Title Page\" means, for a printed book, the title page itself, -+plus such following pages as are needed to hold, legibly, the material -+this License requires to appear in the title page. For works in -+formats which do not have any title page as such, \"Title Page\" means -+the text near the most prominent appearance of the work's title, -+preceding the beginning of the body of the text. -+ -+The \"publisher\" means any person or entity that distributes copies of -+the Document to the public. -+ -+A section \"Entitled XYZ\" means a named subunit of the Document whose -+title either is precisely XYZ or contains XYZ in parentheses following -+text that translates XYZ in another language. (Here XYZ stands for a -+specific section name mentioned below, such as \"Acknowledgements\", -+\"Dedications\", \"Endorsements\", or \"History\".) To \"Preserve the Title\" -+of such a section when you modify the Document means that it remains a -+section \"Entitled XYZ\" according to this definition. -+ -+The Document may include Warranty Disclaimers next to the notice which -+states that this License applies to the Document. These Warranty -+Disclaimers are considered to be included by reference in this -+License, but only as regards disclaiming warranties: any other -+implication that these Warranty Disclaimers may have is void and has -+no effect on the meaning of this License. -+ -+2. VERBATIM COPYING -+ -+You may copy and distribute the Document in any medium, either -+commercially or noncommercially, provided that this License, the -+copyright notices, and the license notice saying this License applies -+to the Document are reproduced in all copies, and that you add no -+other conditions whatsoever to those of this License. You may not use -+technical measures to obstruct or control the reading or further -+copying of the copies you make or distribute. However, you may accept -+compensation in exchange for copies. If you distribute a large enough -+number of copies you must also follow the conditions in section 3. -+ -+You may also lend copies, under the same conditions stated above, and -+you may publicly display copies. -+ -+ -+3. COPYING IN QUANTITY -+ -+If you publish printed copies (or copies in media that commonly have -+printed covers) of the Document, numbering more than 100, and the -+Document's license notice requires Cover Texts, you must enclose the -+copies in covers that carry, clearly and legibly, all these Cover -+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -+the back cover. Both covers must also clearly and legibly identify -+you as the publisher of these copies. The front cover must present -+the full title with all words of the title equally prominent and -+visible. You may add other material on the covers in addition. -+Copying with changes limited to the covers, as long as they preserve -+the title of the Document and satisfy these conditions, can be treated -+as verbatim copying in other respects. -+ -+If the required texts for either cover are too voluminous to fit -+legibly, you should put the first ones listed (as many as fit -+reasonably) on the actual cover, and continue the rest onto adjacent -+pages. -+ -+If you publish or distribute Opaque copies of the Document numbering -+more than 100, you must either include a machine-readable Transparent -+copy along with each Opaque copy, or state in or with each Opaque copy -+a computer-network location from which the general network-using -+public has access to download using public-standard network protocols -+a complete Transparent copy of the Document, free of added material. -+If you use the latter option, you must take reasonably prudent steps, -+when you begin distribution of Opaque copies in quantity, to ensure -+that this Transparent copy will remain thus accessible at the stated -+location until at least one year after the last time you distribute an -+Opaque copy (directly or through your agents or retailers) of that -+edition to the public. -+ -+It is requested, but not required, that you contact the authors of the -+Document well before redistributing any large number of copies, to -+give them a chance to provide you with an updated version of the -+Document. -+ -+ -+4. MODIFICATIONS -+ -+You may copy and distribute a Modified Version of the Document under -+the conditions of sections 2 and 3 above, provided that you release -+the Modified Version under precisely this License, with the Modified -+Version filling the role of the Document, thus licensing distribution -+and modification of the Modified Version to whoever possesses a copy -+of it. In addition, you must do these things in the Modified Version: -+ -+A. Use in the Title Page (and on the covers, if any) a title distinct -+ from that of the Document, and from those of previous versions -+ (which should, if there were any, be listed in the History section -+ of the Document). You may use the same title as a previous version -+ if the original publisher of that version gives permission. -+B. List on the Title Page, as authors, one or more persons or entities -+ responsible for authorship of the modifications in the Modified -+ Version, together with at least five of the principal authors of the -+ Document (all of its principal authors, if it has fewer than five), -+ unless they release you from this requirement. -+C. State on the Title page the name of the publisher of the -+ Modified Version, as the publisher. -+D. Preserve all the copyright notices of the Document. -+E. Add an appropriate copyright notice for your modifications -+ adjacent to the other copyright notices. -+F. Include, immediately after the copyright notices, a license notice -+ giving the public permission to use the Modified Version under the -+ terms of this License, in the form shown in the Addendum below. -+G. Preserve in that license notice the full lists of Invariant Sections -+ and required Cover Texts given in the Document's license notice. -+H. Include an unaltered copy of this License. -+I. Preserve the section Entitled \"History\", Preserve its Title, and add -+ to it an item stating at least the title, year, new authors, and -+ publisher of the Modified Version as given on the Title Page. If -+ there is no section Entitled \"History\" in the Document, create one -+ stating the title, year, authors, and publisher of the Document as -+ given on its Title Page, then add an item describing the Modified -+ Version as stated in the previous sentence. -+J. Preserve the network location, if any, given in the Document for -+ public access to a Transparent copy of the Document, and likewise -+ the network locations given in the Document for previous versions -+ it was based on. These may be placed in the \"History\" section. -+ You may omit a network location for a work that was published at -+ least four years before the Document itself, or if the original -+ publisher of the version it refers to gives permission. -+K. For any section Entitled \"Acknowledgements\" or \"Dedications\", -+ Preserve the Title of the section, and preserve in the section all -+ the substance and tone of each of the contributor acknowledgements -+ and/or dedications given therein. -+L. Preserve all the Invariant Sections of the Document, -+ unaltered in their text and in their titles. Section numbers -+ or the equivalent are not considered part of the section titles. -+M. Delete any section Entitled \"Endorsements\". Such a section -+ may not be included in the Modified Version. -+N. Do not retitle any existing section to be Entitled \"Endorsements\" -+ or to conflict in title with any Invariant Section. -+O. Preserve any Warranty Disclaimers. -+ -+If the Modified Version includes new front-matter sections or -+appendices that qualify as Secondary Sections and contain no material -+copied from the Document, you may at your option designate some or all -+of these sections as invariant. To do this, add their titles to the -+list of Invariant Sections in the Modified Version's license notice. -+These titles must be distinct from any other section titles. -+ -+You may add a section Entitled \"Endorsements\", provided it contains -+nothing but endorsements of your Modified Version by various -+parties--for example, statements of peer review or that the text has -+been approved by an organization as the authoritative definition of a -+standard. -+ -+You may add a passage of up to five words as a Front-Cover Text, and a -+passage of up to 25 words as a Back-Cover Text, to the end of the list -+of Cover Texts in the Modified Version. Only one passage of -+Front-Cover Text and one of Back-Cover Text may be added by (or -+through arrangements made by) any one entity. If the Document already -+includes a cover text for the same cover, previously added by you or -+by arrangement made by the same entity you are acting on behalf of, -+you may not add another; but you may replace the old one, on explicit -+permission from the previous publisher that added the old one. -+ -+The author(s) and publisher(s) of the Document do not by this License -+give permission to use their names for publicity for or to assert or -+imply endorsement of any Modified Version. -+ -+ -+5. COMBINING DOCUMENTS -+ -+You may combine the Document with other documents released under this -+License, under the terms defined in section 4 above for modified -+versions, provided that you include in the combination all of the -+Invariant Sections of all of the original documents, unmodified, and -+list them all as Invariant Sections of your combined work in its -+license notice, and that you preserve all their Warranty Disclaimers. -+ -+The combined work need only contain one copy of this License, and -+multiple identical Invariant Sections may be replaced with a single -+copy. If there are multiple Invariant Sections with the same name but -+different contents, make the title of each such section unique by -+adding at the end of it, in parentheses, the name of the original -+author or publisher of that section if known, or else a unique number. -+Make the same adjustment to the section titles in the list of -+Invariant Sections in the license notice of the combined work. -+ -+In the combination, you must combine any sections Entitled \"History\" -+in the various original documents, forming one section Entitled -+\"History\"; likewise combine any sections Entitled \"Acknowledgements\", -+and any sections Entitled \"Dedications\". You must delete all sections -+Entitled \"Endorsements\". -+ -+ -+6. COLLECTIONS OF DOCUMENTS -+ -+You may make a collection consisting of the Document and other -+documents released under this License, and replace the individual -+copies of this License in the various documents with a single copy -+that is included in the collection, provided that you follow the rules -+of this License for verbatim copying of each of the documents in all -+other respects. -+ -+You may extract a single document from such a collection, and -+distribute it individually under this License, provided you insert a -+copy of this License into the extracted document, and follow this -+License in all other respects regarding verbatim copying of that -+document. -+ -+ -+7. AGGREGATION WITH INDEPENDENT WORKS -+ -+A compilation of the Document or its derivatives with other separate -+and independent documents or works, in or on a volume of a storage or -+distribution medium, is called an \"aggregate\" if the copyright -+resulting from the compilation is not used to limit the legal rights -+of the compilation's users beyond what the individual works permit. -+When the Document is included in an aggregate, this License does not -+apply to the other works in the aggregate which are not themselves -+derivative works of the Document. -+ -+If the Cover Text requirement of section 3 is applicable to these -+copies of the Document, then if the Document is less than one half of -+the entire aggregate, the Document's Cover Texts may be placed on -+covers that bracket the Document within the aggregate, or the -+electronic equivalent of covers if the Document is in electronic form. -+Otherwise they must appear on printed covers that bracket the whole -+aggregate. -+ -+ -+8. TRANSLATION -+ -+Translation is considered a kind of modification, so you may -+distribute translations of the Document under the terms of section 4. -+Replacing Invariant Sections with translations requires special -+permission from their copyright holders, but you may include -+translations of some or all Invariant Sections in addition to the -+original versions of these Invariant Sections. You may include a -+translation of this License, and all the license notices in the -+Document, and any Warranty Disclaimers, provided that you also include -+the original English version of this License and the original versions -+of those notices and disclaimers. In case of a disagreement between -+the translation and the original version of this License or a notice -+or disclaimer, the original version will prevail. -+ -+If a section in the Document is Entitled \"Acknowledgements\", -+\"Dedications\", or \"History\", the requirement (section 4) to Preserve -+its Title (section 1) will typically require changing the actual -+title. -+ -+ -+9. TERMINATION -+ -+You may not copy, modify, sublicense, or distribute the Document -+except as expressly provided under this License. Any attempt -+otherwise to copy, modify, sublicense, or distribute it is void, and -+will automatically terminate your rights under this License. -+ -+However, if you cease all violation of this License, then your license -+from a particular copyright holder is reinstated (a) provisionally, -+unless and until the copyright holder explicitly and finally -+terminates your license, and (b) permanently, if the copyright holder -+fails to notify you of the violation by some reasonable means prior to -+60 days after the cessation. -+ -+Moreover, your license from a particular copyright holder is -+reinstated permanently if the copyright holder notifies you of the -+violation by some reasonable means, this is the first time you have -+received notice of violation of this License (for any work) from that -+copyright holder, and you cure the violation prior to 30 days after -+your receipt of the notice. -+ -+Termination of your rights under this section does not terminate the -+licenses of parties who have received copies or rights from you under -+this License. If your rights have been terminated and not permanently -+reinstated, receipt of a copy of some or all of the same material does -+not give you any rights to use it. -+ -+ -+10. FUTURE REVISIONS OF THIS LICENSE -+ -+The Free Software Foundation may publish new, revised versions of the -+GNU Free Documentation License from time to time. Such new versions -+will be similar in spirit to the present version, but may differ in -+detail to address new problems or concerns. See -+http://www.gnu.org/copyleft/. -+ -+Each version of the License is given a distinguishing version number. -+If the Document specifies that a particular numbered version of this -+License \"or any later version\" applies to it, you have the option of -+following the terms and conditions either of that specified version or -+of any later version that has been published (not as a draft) by the -+Free Software Foundation. If the Document does not specify a version -+number of this License, you may choose any version ever published (not -+as a draft) by the Free Software Foundation. If the Document -+specifies that a proxy can decide which future versions of this -+License can be used, that proxy's public statement of acceptance of a -+version permanently authorizes you to choose that version for the -+Document. -+ -+11. RELICENSING -+ -+\"Massive Multiauthor Collaboration Site\" (or \"MMC Site\") means any -+World Wide Web server that publishes copyrightable works and also -+provides prominent facilities for anybody to edit those works. A -+public wiki that anybody can edit is an example of such a server. A -+\"Massive Multiauthor Collaboration\" (or \"MMC\") contained in the site -+means any set of copyrightable works thus published on the MMC site. -+ -+\"CC-BY-SA\" means the Creative Commons Attribution-Share Alike 3.0 -+license published by Creative Commons Corporation, a not-for-profit -+corporation with a principal place of business in San Francisco, -+California, as well as future copyleft versions of that license -+published by that same organization. -+ -+\"Incorporate\" means to publish or republish a Document, in whole or in -+part, as part of another Document. -+ -+An MMC is \"eligible for relicensing\" if it is licensed under this -+License, and if all works that were first published under this License -+somewhere other than this MMC, and subsequently incorporated in whole or -+in part into the MMC, (1) had no cover texts or invariant sections, and -+(2) were thus incorporated prior to November 1, 2008. -+ -+The operator of an MMC Site may republish an MMC contained in the site -+under CC-BY-SA on the same site at any time before August 1, 2009, -+provided the MMC is eligible for relicensing. -+ -+ -+ADDENDUM: How to use this License for your documents -+ -+To use this License in a document you have written, include a copy of -+the License in the document and put the following copyright and -+license notices just after the title page: -+ -+ Copyright (c) YEAR YOUR NAME. -+ Permission is granted to copy, distribute and/or modify this document -+ under the terms of the GNU Free Documentation License, Version 1.3 -+ or any later version published by the Free Software Foundation; -+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. -+ A copy of the license is included in the section entitled \"GNU -+ Free Documentation License\". -+ -+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, -+replace the \"with...Texts.\" line with this: -+ -+ with the Invariant Sections being LIST THEIR TITLES, with the -+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. -+ -+If you have Invariant Sections without Cover Texts, or some other -+combination of the three, merge those two alternatives to suit the -+situation. -+ -+If your document contains nontrivial examples of program code, we -+recommend releasing these examples in parallel under your choice of -+free software license, such as the GNU General Public License, -+to permit their use in free software. -+" >"$QTROOT/boot/common/data/licenses/FDL v1.3" -+mimeset -f "$QTROOT/boot/common/data/licenses/FDL v1.3" -+ -+###################################################################### -+# create GNU Free Documentation License file -+###################################################################### -+mkdir -p "$QTROOT/boot/common/data/licenses" -+echo " -+ GNU LESSER GENERAL PUBLIC LICENSE -+ Version 2.1, February 1999 -+ -+ Copyright (C) 1991, 1999 Free Software Foundation, Inc. -+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+ Everyone is permitted to copy and distribute verbatim copies -+ of this license document, but changing it is not allowed. -+ -+[This is the first released version of the Lesser GPL. It also counts -+ as the successor of the GNU Library Public License, version 2, hence -+ the version number 2.1.] -+ -+ Preamble -+ -+ The licenses for most software are designed to take away your -+freedom to share and change it. By contrast, the GNU General Public -+Licenses are intended to guarantee your freedom to share and change -+free software--to make sure the software is free for all its users. -+ -+ This license, the Lesser General Public License, applies to some -+specially designated software packages--typically libraries--of the -+Free Software Foundation and other authors who decide to use it. You -+can use it too, but we suggest you first think carefully about whether -+this license or the ordinary General Public License is the better -+strategy to use in any particular case, based on the explanations below. -+ -+ When we speak of free software, we are referring to freedom of use, -+not price. Our General Public Licenses are designed to make sure that -+you have the freedom to distribute copies of free software (and charge -+for this service if you wish); that you receive source code or can get -+it if you want it; that you can change the software and use pieces of -+it in new free programs; and that you are informed that you can do -+these things. -+ -+ To protect your rights, we need to make restrictions that forbid -+distributors to deny you these rights or to ask you to surrender these -+rights. These restrictions translate to certain responsibilities for -+you if you distribute copies of the library or if you modify it. -+ -+ For example, if you distribute copies of the library, whether gratis -+or for a fee, you must give the recipients all the rights that we gave -+you. You must make sure that they, too, receive or can get the source -+code. If you link other code with the library, you must provide -+complete object files to the recipients, so that they can relink them -+with the library after making changes to the library and recompiling -+it. And you must show them these terms so they know their rights. -+ -+ We protect your rights with a two-step method: (1) we copyright the -+library, and (2) we offer you this license, which gives you legal -+permission to copy, distribute and/or modify the library. -+ -+ To protect each distributor, we want to make it very clear that -+there is no warranty for the free library. Also, if the library is -+modified by someone else and passed on, the recipients should know -+that what they have is not the original version, so that the original -+author's reputation will not be affected by problems that might be -+introduced by others. -+ -+ Finally, software patents pose a constant threat to the existence of -+any free program. We wish to make sure that a company cannot -+effectively restrict the users of a free program by obtaining a -+restrictive license from a patent holder. Therefore, we insist that -+any patent license obtained for a version of the library must be -+consistent with the full freedom of use specified in this license. -+ -+ Most GNU software, including some libraries, is covered by the -+ordinary GNU General Public License. This license, the GNU Lesser -+General Public License, applies to certain designated libraries, and -+is quite different from the ordinary General Public License. We use -+this license for certain libraries in order to permit linking those -+libraries into non-free programs. -+ -+ When a program is linked with a library, whether statically or using -+a shared library, the combination of the two is legally speaking a -+combined work, a derivative of the original library. The ordinary -+General Public License therefore permits such linking only if the -+entire combination fits its criteria of freedom. The Lesser General -+Public License permits more lax criteria for linking other code with -+the library. -+ -+ We call this license the \"Lesser\" General Public License because it -+does Less to protect the user's freedom than the ordinary General -+Public License. It also provides other free software developers Less -+of an advantage over competing non-free programs. These disadvantages -+are the reason we use the ordinary General Public License for many -+libraries. However, the Lesser license provides advantages in certain -+special circumstances. -+ -+ For example, on rare occasions, there may be a special need to -+encourage the widest possible use of a certain library, so that it becomes -+a de-facto standard. To achieve this, non-free programs must be -+allowed to use the library. A more frequent case is that a free -+library does the same job as widely used non-free libraries. In this -+case, there is little to gain by limiting the free library to free -+software only, so we use the Lesser General Public License. -+ -+ In other cases, permission to use a particular library in non-free -+programs enables a greater number of people to use a large body of -+free software. For example, permission to use the GNU C Library in -+non-free programs enables many more people to use the whole GNU -+operating system, as well as its variant, the GNU/Linux operating -+system. -+ -+ Although the Lesser General Public License is Less protective of the -+users' freedom, it does ensure that the user of a program that is -+linked with the Library has the freedom and the wherewithal to run -+that program using a modified version of the Library. -+ -+ The precise terms and conditions for copying, distribution and -+modification follow. Pay close attention to the difference between a -+\"work based on the library\" and a \"work that uses the library\". The -+former contains code derived from the library, whereas the latter must -+be combined with the library in order to run. -+ -+ GNU LESSER GENERAL PUBLIC LICENSE -+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -+ -+ 0. This License Agreement applies to any software library or other -+program which contains a notice placed by the copyright holder or -+other authorized party saying it may be distributed under the terms of -+this Lesser General Public License (also called \"this License\"). -+Each licensee is addressed as \"you\". -+ -+ A \"library\" means a collection of software functions and/or data -+prepared so as to be conveniently linked with application programs -+(which use some of those functions and data) to form executables. -+ -+ The \"Library\", below, refers to any such software library or work -+which has been distributed under these terms. A \"work based on the -+Library\" means either the Library or any derivative work under -+copyright law: that is to say, a work containing the Library or a -+portion of it, either verbatim or with modifications and/or translated -+straightforwardly into another language. (Hereinafter, translation is -+included without limitation in the term \"modification\".) -+ -+ \"Source code\" for a work means the preferred form of the work for -+making modifications to it. For a library, complete source code means -+all the source code for all modules it contains, plus any associated -+interface definition files, plus the scripts used to control compilation -+and installation of the library. -+ -+ Activities other than copying, distribution and modification are not -+covered by this License; they are outside its scope. The act of -+running a program using the Library is not restricted, and output from -+such a program is covered only if its contents constitute a work based -+on the Library (independent of the use of the Library in a tool for -+writing it). Whether that is true depends on what the Library does -+and what the program that uses the Library does. -+ -+ 1. You may copy and distribute verbatim copies of the Library's -+complete source code as you receive it, in any medium, provided that -+you conspicuously and appropriately publish on each copy an -+appropriate copyright notice and disclaimer of warranty; keep intact -+all the notices that refer to this License and to the absence of any -+warranty; and distribute a copy of this License along with the -+Library. -+ -+ You may charge a fee for the physical act of transferring a copy, -+and you may at your option offer warranty protection in exchange for a -+fee. -+ -+ 2. You may modify your copy or copies of the Library or any portion -+of it, thus forming a work based on the Library, and copy and -+distribute such modifications or work under the terms of Section 1 -+above, provided that you also meet all of these conditions: -+ -+ a) The modified work must itself be a software library. -+ -+ b) You must cause the files modified to carry prominent notices -+ stating that you changed the files and the date of any change. -+ -+ c) You must cause the whole of the work to be licensed at no -+ charge to all third parties under the terms of this License. -+ -+ d) If a facility in the modified Library refers to a function or a -+ table of data to be supplied by an application program that uses -+ the facility, other than as an argument passed when the facility -+ is invoked, then you must make a good faith effort to ensure that, -+ in the event an application does not supply such function or -+ table, the facility still operates, and performs whatever part of -+ its purpose remains meaningful. -+ -+ (For example, a function in a library to compute square roots has -+ a purpose that is entirely well-defined independent of the -+ application. Therefore, Subsection 2d requires that any -+ application-supplied function or table used by this function must -+ be optional: if the application does not supply it, the square -+ root function must still compute square roots.) -+ -+These requirements apply to the modified work as a whole. If -+identifiable sections of that work are not derived from the Library, -+and can be reasonably considered independent and separate works in -+themselves, then this License, and its terms, do not apply to those -+sections when you distribute them as separate works. But when you -+distribute the same sections as part of a whole which is a work based -+on the Library, the distribution of the whole must be on the terms of -+this License, whose permissions for other licensees extend to the -+entire whole, and thus to each and every part regardless of who wrote -+it. -+ -+Thus, it is not the intent of this section to claim rights or contest -+your rights to work written entirely by you; rather, the intent is to -+exercise the right to control the distribution of derivative or -+collective works based on the Library. -+ -+In addition, mere aggregation of another work not based on the Library -+with the Library (or with a work based on the Library) on a volume of -+a storage or distribution medium does not bring the other work under -+the scope of this License. -+ -+ 3. You may opt to apply the terms of the ordinary GNU General Public -+License instead of this License to a given copy of the Library. To do -+this, you must alter all the notices that refer to this License, so -+that they refer to the ordinary GNU General Public License, version 2, -+instead of to this License. (If a newer version than version 2 of the -+ordinary GNU General Public License has appeared, then you can specify -+that version instead if you wish.) Do not make any other change in -+these notices. -+ -+ Once this change is made in a given copy, it is irreversible for -+that copy, so the ordinary GNU General Public License applies to all -+subsequent copies and derivative works made from that copy. -+ -+ This option is useful when you wish to copy part of the code of -+the Library into a program that is not a library. -+ -+ 4. You may copy and distribute the Library (or a portion or -+derivative of it, under Section 2) in object code or executable form -+under the terms of Sections 1 and 2 above provided that you accompany -+it with the complete corresponding machine-readable source code, which -+must be distributed under the terms of Sections 1 and 2 above on a -+medium customarily used for software interchange. -+ -+ If distribution of object code is made by offering access to copy -+from a designated place, then offering equivalent access to copy the -+source code from the same place satisfies the requirement to -+distribute the source code, even though third parties are not -+compelled to copy the source along with the object code. -+ -+ 5. A program that contains no derivative of any portion of the -+Library, but is designed to work with the Library by being compiled or -+linked with it, is called a \"work that uses the Library\". Such a -+work, in isolation, is not a derivative work of the Library, and -+therefore falls outside the scope of this License. -+ -+ However, linking a \"work that uses the Library\" with the Library -+creates an executable that is a derivative of the Library (because it -+contains portions of the Library), rather than a \"work that uses the -+library\". The executable is therefore covered by this License. -+Section 6 states terms for distribution of such executables. -+ -+ When a \"work that uses the Library\" uses material from a header file -+that is part of the Library, the object code for the work may be a -+derivative work of the Library even though the source code is not. -+Whether this is true is especially significant if the work can be -+linked without the Library, or if the work is itself a library. The -+threshold for this to be true is not precisely defined by law. -+ -+ If such an object file uses only numerical parameters, data -+structure layouts and accessors, and small macros and small inline -+functions (ten lines or less in length), then the use of the object -+file is unrestricted, regardless of whether it is legally a derivative -+work. (Executables containing this object code plus portions of the -+Library will still fall under Section 6.) -+ -+ Otherwise, if the work is a derivative of the Library, you may -+distribute the object code for the work under the terms of Section 6. -+Any executables containing that work also fall under Section 6, -+whether or not they are linked directly with the Library itself. -+ -+ 6. As an exception to the Sections above, you may also combine or -+link a \"work that uses the Library\" with the Library to produce a -+work containing portions of the Library, and distribute that work -+under terms of your choice, provided that the terms permit -+modification of the work for the customer's own use and reverse -+engineering for debugging such modifications. -+ -+ You must give prominent notice with each copy of the work that the -+Library is used in it and that the Library and its use are covered by -+this License. You must supply a copy of this License. If the work -+during execution displays copyright notices, you must include the -+copyright notice for the Library among them, as well as a reference -+directing the user to the copy of this License. Also, you must do one -+of these things: -+ -+ a) Accompany the work with the complete corresponding -+ machine-readable source code for the Library including whatever -+ changes were used in the work (which must be distributed under -+ Sections 1 and 2 above); and, if the work is an executable linked -+ with the Library, with the complete machine-readable \"work that -+ uses the Library\", as object code and/or source code, so that the -+ user can modify the Library and then relink to produce a modified -+ executable containing the modified Library. (It is understood -+ that the user who changes the contents of definitions files in the -+ Library will not necessarily be able to recompile the application -+ to use the modified definitions.) -+ -+ b) Use a suitable shared library mechanism for linking with the -+ Library. A suitable mechanism is one that (1) uses at run time a -+ copy of the library already present on the user's computer system, -+ rather than copying library functions into the executable, and (2) -+ will operate properly with a modified version of the library, if -+ the user installs one, as long as the modified version is -+ interface-compatible with the version that the work was made with. -+ -+ c) Accompany the work with a written offer, valid for at -+ least three years, to give the same user the materials -+ specified in Subsection 6a, above, for a charge no more -+ than the cost of performing this distribution. -+ -+ d) If distribution of the work is made by offering access to copy -+ from a designated place, offer equivalent access to copy the above -+ specified materials from the same place. -+ -+ e) Verify that the user has already received a copy of these -+ materials or that you have already sent this user a copy. -+ -+ For an executable, the required form of the \"work that uses the -+Library\" must include any data and utility programs needed for -+reproducing the executable from it. However, as a special exception, -+the materials to be distributed need not include anything that is -+normally distributed (in either source or binary form) with the major -+components (compiler, kernel, and so on) of the operating system on -+which the executable runs, unless that component itself accompanies -+the executable. -+ -+ It may happen that this requirement contradicts the license -+restrictions of other proprietary libraries that do not normally -+accompany the operating system. Such a contradiction means you cannot -+use both them and the Library together in an executable that you -+distribute. -+ -+ 7. You may place library facilities that are a work based on the -+Library side-by-side in a single library together with other library -+facilities not covered by this License, and distribute such a combined -+library, provided that the separate distribution of the work based on -+the Library and of the other library facilities is otherwise -+permitted, and provided that you do these two things: -+ -+ a) Accompany the combined library with a copy of the same work -+ based on the Library, uncombined with any other library -+ facilities. This must be distributed under the terms of the -+ Sections above. -+ -+ b) Give prominent notice with the combined library of the fact -+ that part of it is a work based on the Library, and explaining -+ where to find the accompanying uncombined form of the same work. -+ -+ 8. You may not copy, modify, sublicense, link with, or distribute -+the Library except as expressly provided under this License. Any -+attempt otherwise to copy, modify, sublicense, link with, or -+distribute the Library is void, and will automatically terminate your -+rights under this License. However, parties who have received copies, -+or rights, from you under this License will not have their licenses -+terminated so long as such parties remain in full compliance. -+ -+ 9. You are not required to accept this License, since you have not -+signed it. However, nothing else grants you permission to modify or -+distribute the Library or its derivative works. These actions are -+prohibited by law if you do not accept this License. Therefore, by -+modifying or distributing the Library (or any work based on the -+Library), you indicate your acceptance of this License to do so, and -+all its terms and conditions for copying, distributing or modifying -+the Library or works based on it. -+ -+ 10. Each time you redistribute the Library (or any work based on the -+Library), the recipient automatically receives a license from the -+original licensor to copy, distribute, link with or modify the Library -+subject to these terms and conditions. You may not impose any further -+restrictions on the recipients' exercise of the rights granted herein. -+You are not responsible for enforcing compliance by third parties with -+this License. -+ -+ 11. If, as a consequence of a court judgment or allegation of patent -+infringement or for any other reason (not limited to patent issues), -+conditions are imposed on you (whether by court order, agreement or -+otherwise) that contradict the conditions of this License, they do not -+excuse you from the conditions of this License. If you cannot -+distribute so as to satisfy simultaneously your obligations under this -+License and any other pertinent obligations, then as a consequence you -+may not distribute the Library at all. For example, if a patent -+license would not permit royalty-free redistribution of the Library by -+all those who receive copies directly or indirectly through you, then -+the only way you could satisfy both it and this License would be to -+refrain entirely from distribution of the Library. -+ -+If any portion of this section is held invalid or unenforceable under any -+particular circumstance, the balance of the section is intended to apply, -+and the section as a whole is intended to apply in other circumstances. -+ -+It is not the purpose of this section to induce you to infringe any -+patents or other property right claims or to contest validity of any -+such claims; this section has the sole purpose of protecting the -+integrity of the free software distribution system which is -+implemented by public license practices. Many people have made -+generous contributions to the wide range of software distributed -+through that system in reliance on consistent application of that -+system; it is up to the author/donor to decide if he or she is willing -+to distribute software through any other system and a licensee cannot -+impose that choice. -+ -+This section is intended to make thoroughly clear what is believed to -+be a consequence of the rest of this License. -+ -+ 12. If the distribution and/or use of the Library is restricted in -+certain countries either by patents or by copyrighted interfaces, the -+original copyright holder who places the Library under this License may add -+an explicit geographical distribution limitation excluding those countries, -+so that distribution is permitted only in or among countries not thus -+excluded. In such case, this License incorporates the limitation as if -+written in the body of this License. -+ -+ 13. The Free Software Foundation may publish revised and/or new -+versions of the Lesser General Public License from time to time. -+Such new versions will be similar in spirit to the present version, -+but may differ in detail to address new problems or concerns. -+ -+Each version is given a distinguishing version number. If the Library -+specifies a version number of this License which applies to it and -+\"any later version\", you have the option of following the terms and -+conditions either of that version or of any later version published by -+the Free Software Foundation. If the Library does not specify a -+license version number, you may choose any version ever published by -+the Free Software Foundation. -+ -+ 14. If you wish to incorporate parts of the Library into other free -+programs whose distribution conditions are incompatible with these, -+write to the author to ask for permission. For software which is -+copyrighted by the Free Software Foundation, write to the Free -+Software Foundation; we sometimes make exceptions for this. Our -+decision will be guided by the two goals of preserving the free status -+of all derivatives of our free software and of promoting the sharing -+and reuse of software generally. -+ -+ NO WARRANTY -+ -+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -+OTHER PARTIES PROVIDE THE LIBRARY \"AS IS\" WITHOUT WARRANTY OF ANY -+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -+ -+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -+DAMAGES. -+ -+ END OF TERMS AND CONDITIONS -+ -+ How to Apply These Terms to Your New Libraries -+ -+ If you develop a new library, and you want it to be of the greatest -+possible use to the public, we recommend making it free software that -+everyone can redistribute and change. You can do so by permitting -+redistribution under these terms (or, alternatively, under the terms of the -+ordinary General Public License). -+ -+ To apply these terms, attach the following notices to the library. It is -+safest to attach them to the start of each source file to most effectively -+convey the exclusion of warranty; and each file should have at least the -+\"copyright\" line and a pointer to where the full notice is found. -+ -+ -+ Copyright (C) -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ This library 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with this library; if not, write to the Free Software -+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -+ -+Also add information on how to contact you by electronic and paper mail. -+ -+You should also get your employer (if you work as a programmer) or your -+school, if any, to sign a \"copyright disclaimer\" for the library, if -+necessary. Here is a sample; alter the names: -+ -+ Yoyodyne, Inc., hereby disclaims all copyright interest in the -+ library 'Frob' (a library for tweaking knobs) written by James Random Hacker. -+ -+ , 1 April 1990 -+ Ty Coon, President of Vice -+ -+That's all there is to it! -+" >"$QTROOT/boot/common/data/licenses/LGPL v2.1" -+mimeset -f "$QTROOT/boot/common/data/licenses/LGPL v2.1" -+ -+###################################################################### -+echo "Make full pack" -+###################################################################### -+cd $QTROOT/boot -+zip -ry9 ../qt_4.7.3_haiku_r1a3_$(date +%d%b%Y)_dev.zip * >/dev/null -+cd .. -+ -+###################################################################### -+echo "Remove files for minimal pack" -+###################################################################### -+echo " documantation" -+rm -rf $QTROOT/boot/common/documentation/doc/Qt -+echo " mkspecs" -+rm -rf $QTROOT/boot/common/data/Qt/mkspecs -+echo " include" -+rm -rf $QTROOT/boot/common/include -+echo " assistant" -+rm -f $QTROOT/boot/common/bin/assistant -+echo " designer" -+rm -f $QTROOT/boot/common/bin/designer -+echo " linguist" -+rm -f $QTROOT/boot/common/bin/linguist -+echo " qhelpconverter" -+rm -f $QTROOT/boot/common/bin/qhelpconverter -+echo " qhelpgenerator" -+rm -f $QTROOT/boot/common/bin/qhelpgenerator -+echo " qt3to4" -+rm -f $QTROOT/boot/common/bin/qt3to4 -+echo " pixeltool" -+rm -f $QTROOT/boot/common/bin/pixeltool -+echo " moc" -+rm -f $QTROOT/boot/common/bin/moc -+echo " qmake" -+rm -f $QTROOT/boot/common/bin/qmake -+echo " rcc" -+rm -f $QTROOT/boot/common/bin/rcc -+echo " qdoc3" -+rm -f $QTROOT/boot/common/bin/qdoc3 -+echo " rcc" -+rm -f $QTROOT/boot/common/bin/rcc -+echo " uic" -+rm -f $QTROOT/boot/common/bin/uic -+echo " uic3" -+rm -f $QTROOT/boot/common/bin/uic3 -+echo " libQtUiTools.a" -+rm -f $QTROOT/boot/common/lib/gcc4/libQtUiTools.a -+echo " *.la" -+rm -f $QTROOT/boot/common/lib/gcc4/*.la -+echo " *.prl" -+rm -f $QTROOT/boot/common/lib/gcc4/*.prl -+ -+echo " symlinks from menu" -+rm -f "$QTROOT/boot/home/config/be/Qt/Development/Qt Assistant" -+rm -f "$QTROOT/boot/home/config/be/Qt/Development/Qt Help Conversion Wizard" -+rm -f "$QTROOT/boot/home/config/be/Qt/Development/Qt Designer" -+rm -f "$QTROOT/boot/home/config/be/Qt/Development/Qt Linguist" -+ -+###################################################################### -+echo "Make min pack" -+###################################################################### -+cd $QTROOT/boot -+zip -ry9 ../qt_4.7.3_haiku_r1a3_$(date +%d%b%Y)_min.zip * >/dev/null -+cd .. -+ -+###################################################################### -+echo "Clean sandbox" -+###################################################################### -+rm -rf $QTROOT/boot -+ -+###################################################################### -+echo "Done" -+###################################################################### -+ -diff -rupN qt-everywhere-opensource-src-4.7.3/mkspecs/haiku-g++/qmake.conf qt-everywhere-opensource-src-4.7.3_haiku/mkspecs/haiku-g++/qmake.conf ---- qt-everywhere-opensource-src-4.7.3/mkspecs/haiku-g++/qmake.conf 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/mkspecs/haiku-g++/qmake.conf 2011-06-13 22:06:43.097255424 +0000 -@@ -0,0 +1,37 @@ -+# -+# qmake configuration for Haiku-g++ -+# -+ -+MAKEFILE_GENERATOR = UNIX -+TARGET_PLATFORM = haiku -+TEMPLATE = app -+CONFIG += qt warn_on release link_prl -+QT += core gui -+ -+QMAKE_LIBS = -lroot -+QMAKE_INCDIR = -+QMAKE_LIBDIR = -+QMAKE_INCDIR_QT = $$[QT_INSTALL_HEADERS] -+QMAKE_LIBDIR_QT = $$[QT_INSTALL_LIBS] -+QMAKE_LIBS_NETWORK = -lnetwork -+ -+QMAKE_MOC = $$[QT_INSTALL_BINS]/moc -+QMAKE_UIC = $$[QT_INSTALL_BINS]/uic -+ -+QMAKE_AR = ar cqs -+QMAKE_OBJCOPY = objcopy -+QMAKE_RANLIB = -+ -+QMAKE_TAR = tar -cf -+QMAKE_GZIP = gzip -9f -+ -+QMAKE_COPY = cp -f -+QMAKE_MOVE = mv -f -+QMAKE_DEL_FILE = rm -f -+QMAKE_DEL_DIR = rmdir -+QMAKE_CHK_DIR_EXISTS = test -d -+QMAKE_MKDIR = mkdir -p -+ -+include(../common/g++.conf) -+include(../common/unix.conf) -+load(qt_config) -diff -rupN qt-everywhere-opensource-src-4.7.3/mkspecs/haiku-g++/qplatformdefs.h qt-everywhere-opensource-src-4.7.3_haiku/mkspecs/haiku-g++/qplatformdefs.h ---- qt-everywhere-opensource-src-4.7.3/mkspecs/haiku-g++/qplatformdefs.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/mkspecs/haiku-g++/qplatformdefs.h 2011-06-13 22:06:43.106168320 +0000 -@@ -0,0 +1,43 @@ -+#ifndef QPLATFORMDEFS_H -+#define QPLATFORMDEFS_H -+ -+// Get Qt defines/settings -+ -+#include "qglobal.h" -+ -+// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs -+ -+#include -+ -+ -+// We are hot - unistd.h should have turned on the specific APIs we requested -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+//#include -+#include -+#include -+#include -+#include -+#ifndef QT_NO_IPV6IFNAME -+#include -+#endif -+ -+#include "../common/posix/qplatformdefs.h" -+ -+#define QT_SOCKLEN_T socklen_t -+ -+#define QT_SNPRINTF ::snprintf -+#define QT_VSNPRINTF ::vsnprintf -+ -+#endif // QPLATFORMDEFS_H -diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/generators/makefile.cpp qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/makefile.cpp ---- qt-everywhere-opensource-src-4.7.3/qmake/generators/makefile.cpp 2011-03-30 05:15:42.028835840 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/makefile.cpp 2011-06-13 22:06:43.110624768 +0000 -@@ -2202,6 +2202,8 @@ QString MakefileGenerator::buildArgs(con - ret += " -unix"; - else if (Option::target_mode == Option::TARG_WIN_MODE) - ret += " -win32"; -+ else if(Option::target_mode == Option::TARG_HAIKU_MODE) -+ ret += " -haiku"; - } - - //configs -diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/generators/metamakefile.cpp qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/metamakefile.cpp ---- qt-everywhere-opensource-src-4.7.3/qmake/generators/metamakefile.cpp 2011-03-30 05:15:42.022806528 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/metamakefile.cpp 2011-06-13 22:06:43.112721920 +0000 -@@ -525,6 +525,9 @@ MetaMakefileGenerator::modesForGenerator - #ifdef Q_OS_MAC - *host_mode = Option::HOST_MACX_MODE; - *target_mode = Option::TARG_MACX_MODE; -+#elif defined(Q_OS_HAIKU) -+ *host_mode = Option::HOST_HAIKU_MODE; -+ *target_mode = Option::TARG_HAIKU_MODE; - #else - *host_mode = Option::HOST_UNIX_MODE; - *target_mode = Option::TARG_UNIX_MODE; -diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/generators/unix/unixmake.cpp qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/unix/unixmake.cpp ---- qt-everywhere-opensource-src-4.7.3/qmake/generators/unix/unixmake.cpp 2011-03-30 05:15:42.025427968 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/generators/unix/unixmake.cpp 2011-06-13 22:06:43.115343360 +0000 -@@ -811,6 +811,7 @@ UnixMakefileGenerator::defaultInstall(co - if(!links.isEmpty()) { - for(int i = 0; i < links.size(); ++i) { - if(Option::target_mode == Option::TARG_UNIX_MODE || -+ Option::target_mode == Option::TARG_HAIKU_MODE || - Option::target_mode == Option::TARG_MACX_MODE) { - QString link = Option::fixPathToTargetOS(destdir + links[i], false); - int lslash = link.lastIndexOf(Option::dir_sep); -diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/option.cpp qt-everywhere-opensource-src-4.7.3_haiku/qmake/option.cpp ---- qt-everywhere-opensource-src-4.7.3/qmake/option.cpp 2011-03-30 05:15:42.029360128 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/option.cpp 2011-06-13 22:06:43.117702656 +0000 -@@ -260,6 +260,11 @@ Option::parseCommandLine(int argc, char - Option::host_mode = HOST_WIN_MODE; - Option::target_mode = TARG_WIN_MODE; - Option::target_mode_overridden = true; -+ } else if(opt == "haiku") { -+ fprintf(stderr, "-haiku is deprecated.\n"); -+ Option::host_mode = HOST_HAIKU_MODE; -+ Option::target_mode = TARG_HAIKU_MODE; -+ Option::target_mode_overridden = true; - } else if(opt == "d") { - Option::debug_level++; - } else if(opt == "version" || opt == "v" || opt == "-version") { -@@ -535,6 +540,9 @@ Option::init(int argc, char **argv) - #if defined(Q_OS_MAC) - Option::host_mode = Option::HOST_MACX_MODE; - Option::target_mode = Option::TARG_MACX_MODE; -+#elif defined(Q_OS_HAIKU) -+ Option::host_mode = Option::HOST_HAIKU_MODE; -+ Option::target_mode = Option::TARG_HAIKU_MODE; - #elif defined(Q_OS_UNIX) - Option::host_mode = Option::HOST_UNIX_MODE; - Option::target_mode = Option::TARG_UNIX_MODE; -diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/option.h qt-everywhere-opensource-src-4.7.3_haiku/qmake/option.h ---- qt-everywhere-opensource-src-4.7.3/qmake/option.h 2011-03-30 05:15:42.030146560 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/option.h 2011-06-13 22:06:43.119799808 +0000 -@@ -153,10 +153,10 @@ struct Option - enum QMAKE_RECURSIVE { QMAKE_RECURSIVE_DEFAULT, QMAKE_RECURSIVE_YES, QMAKE_RECURSIVE_NO }; - static QMAKE_RECURSIVE recursive; - static QStringList before_user_vars, after_user_vars, user_configs, after_user_configs; -- enum HOST_MODE { HOST_UNKNOWN_MODE, HOST_UNIX_MODE, HOST_WIN_MODE, HOST_MACX_MODE }; -+ enum HOST_MODE { HOST_UNKNOWN_MODE, HOST_UNIX_MODE, HOST_WIN_MODE, HOST_MACX_MODE, HOST_HAIKU_MODE }; - static HOST_MODE host_mode; - enum TARG_MODE { TARG_UNKNOWN_MODE, TARG_UNIX_MODE, TARG_WIN_MODE, TARG_MACX_MODE, -- TARG_SYMBIAN_MODE }; -+ TARG_SYMBIAN_MODE, TARG_HAIKU_MODE }; - static TARG_MODE target_mode; - static bool target_mode_overridden; - static QString user_template, user_template_prefix; -diff -rupN qt-everywhere-opensource-src-4.7.3/qmake/project.cpp qt-everywhere-opensource-src-4.7.3_haiku/qmake/project.cpp ---- qt-everywhere-opensource-src-4.7.3/qmake/project.cpp 2011-03-30 05:15:42.030408704 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/qmake/project.cpp 2011-06-13 22:06:43.123994112 +0000 -@@ -541,6 +541,10 @@ QStringList qmake_feature_paths(QMakePro - case Option::TARG_UNIX_MODE: - concat << base_concat + QDir::separator() + "unix"; - break; -+ case Option::TARG_HAIKU_MODE: -+ concat << base_concat + QDir::separator() + "haiku"; -+ concat << base_concat + QDir::separator() + "unix"; -+ break; - case Option::TARG_WIN_MODE: - concat << base_concat + QDir::separator() + "win32"; - break; -@@ -1505,6 +1509,8 @@ void QMakeProject::validateModes() - const QString &os = tgt.first(); - if (os == "unix") - Option::target_mode = Option::TARG_UNIX_MODE; -+ else if (os == "haiku") -+ Option::target_mode = Option::TARG_HAIKU_MODE; - else if (os == "macx") - Option::target_mode = Option::TARG_MACX_MODE; - else if (os == "symbian") -@@ -1538,6 +1544,7 @@ QMakeProject::isActiveConfig(const QStri - validateModes(); - return Option::target_mode == Option::TARG_UNIX_MODE - || Option::target_mode == Option::TARG_MACX_MODE -+ || Option::target_mode == Option::TARG_HAIKU_MODE - || Option::target_mode == Option::TARG_SYMBIAN_MODE; - } else if (x == "macx" || x == "mac") { - validateModes(); -@@ -1548,6 +1555,9 @@ QMakeProject::isActiveConfig(const QStri - } else if (x == "win32") { - validateModes(); - return Option::target_mode == Option::TARG_WIN_MODE; -+ } else if (x == "haiku") { -+ validateModes(); -+ return Option::target_mode == Option::TARG_HAIKU_MODE; - } - - //mkspecs -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/clucene/src/CLucene/config/compiler.h qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/clucene/src/CLucene/config/compiler.h ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/clucene/src/CLucene/config/compiler.h 2011-03-30 05:18:56.033030144 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/clucene/src/CLucene/config/compiler.h 2011-06-13 22:06:43.126091264 +0000 -@@ -65,7 +65,7 @@ - //////////////////////////////////////////////////////////////////// - - /* Operating system recognition (basic) */ --#if defined (__unix) || defined (__linux__) || defined (__QNX__) || defined (_AIX) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__Lynx__) || defined(hpux) || defined(__hpux) -+#if defined (__unix) || defined (__linux__) || defined (__QNX__) || defined (_AIX) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__Lynx__) || defined(hpux) || defined(__hpux) || defined (__HAIKU__) - #undef _UNIX - #define _UNIX 1 - #include "CLucene/config/PlatformUnix.h" -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile 2011-06-13 22:06:43.127926272 +0000 -@@ -0,0 +1,25 @@ -+all: clean qsystray qsystray_gcc2 -+ -+qsystray: -+ setgcc gcc4 -+ sleep 1 -+ make -f Makefile.gcc4 -+ -+qsystray_gcc2: -+ setgcc gcc2 -+ sleep 1 -+ make -f Makefile.gcc2 -+ setgcc gcc4 -+ sleep 1 -+ -+clean: -+ make -f Makefile.gcc4 clean -+ make -f Makefile.gcc2 clean -+ -+install: -+ make -f Makefile.gcc4 install -+ make -f Makefile.gcc2 install -+ -+ make -f Makefile.gcc4 clean -+ make -f Makefile.gcc2 clean -+ -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile.gcc2 qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile.gcc2 ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile.gcc2 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile.gcc2 2011-06-13 22:06:43.142082048 +0000 -@@ -0,0 +1,24 @@ -+CC=g++ -+SIGNATURE="application/x-vnd.QtSystrayManager_gcc2" -+ -+all: qsystray -+ -+qsystray: qsystray_gcc2.o -+ $(CC) -g qsystray_gcc2.o -ltracker -lroot -lbe -oqsystray_gcc2 -+ rc qsystray_gcc2.rdef -+ xres -o ./qsystray_gcc2 qsystray_gcc2.rsrc -+ mimeset -f ./qsystray_gcc2 -+ -+qsystray_gcc2.o: -+ $(CC) -g -oqsystray_gcc2.o -DGCC2BUILD=1 -DAPP_SIGNATURE="\"$(SIGNATURE)\"" -c qsystray.cpp -+ -+clean: -+ rm -f ./qsystray_gcc2.o -+ rm -f ./qsystray_gcc2.rsrc -+ rm -f ./qsystray_gcc2 -+ -+install: -+ cp -f ./qsystray_gcc2 /boot/common/bin/qsystray_gcc2 -+ rm -f ./qsystray_gcc2.o -+ rm -f ./qsystray_gcc2.rsrc -+ rm -f ./qsystray_gcc2 -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile.gcc4 qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile.gcc4 ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/Makefile.gcc4 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/Makefile.gcc4 2011-06-13 22:06:43.143392768 +0000 -@@ -0,0 +1,24 @@ -+CC=g++ -+SIGNATURE="application/x-vnd.QtSystrayManager_gcc4" -+ -+all: qsystray -+ -+qsystray: qsystray_gcc4.o -+ $(CC) -g qsystray_gcc4.o -ltracker -lroot -lbe -oqsystray -+ rc qsystray_gcc4.rdef -+ xres -o ./qsystray qsystray_gcc4.rsrc -+ mimeset -f ./qsystray -+ -+qsystray_gcc4.o: -+ $(CC) -g -oqsystray_gcc4.o -DGCC4BUILD=1 -DAPP_SIGNATURE="\"$(SIGNATURE)\"" -c qsystray.cpp -+ -+clean: -+ rm -f ./qsystray_gcc4.o -+ rm -f ./qsystray_gcc4.rsrc -+ rm -f ./qsystray -+ -+install: -+ cp -f ./qsystray /boot/common/bin/qsystray -+ rm -f ./qsystray_gcc4.o -+ rm -f ./qsystray_gcc4.rsrc -+ rm -f ./qsystray -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray.cpp ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray.cpp 2011-06-13 22:06:43.145489920 +0000 -@@ -0,0 +1,303 @@ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "qsystray.h" -+ -+#ifndef APP_SIGNATURE -+#define APP_SIGNATURE "application/x-vnd.QtSystrayManager" -+#endif -+ -+#define REPL_NAME "QtTrayItem" -+#define DBAR_SIGNATURE "application/x-vnd.Be-TSKB" -+ -+ -+DeskbarView::DeskbarView(team_id tid) : BView(BRect(0,0,15,15), REPL_NAME,B_FOLLOW_NONE,B_WILL_DRAW) -+{ -+ id = -1; -+ team = tid; -+ ticks = 0; -+ icon = NULL; -+ traysysobject = NULL; -+ lastButtons = 0; -+} -+ -+DeskbarView::DeskbarView(BMessage *message) : BView(message) -+{ -+ const void* data; -+ ssize_t numBytes; -+ message->FindData("color",B_ANY_TYPE,&data,&numBytes); -+ color = *((rgb_color*)data); -+ message->FindData("team",B_ANY_TYPE,&data,&numBytes); -+ team = *((team_id*)data); -+ id = -1; -+ ticks = 0; -+ icon = NULL; -+ traysysobject = NULL; -+ lastButtons = 0; -+} -+ -+DeskbarView *DeskbarView::Instantiate(BMessage *data) { -+ if (!validate_instantiation(data, REPL_NAME)) return NULL; -+ return new DeskbarView(data); -+} -+ -+status_t DeskbarView::Archive(BMessage *data, bool deep) const { -+ BView::Archive(data, deep); -+ data->AddString("add_on", APP_SIGNATURE); -+ data->AddString("class", REPL_NAME); -+ -+ data->AddData("color",B_ANY_TYPE,&color,sizeof(rgb_color)); -+ data->AddData("team",B_ANY_TYPE,&team,sizeof(team_id)); -+ return B_OK; -+} -+ -+void DeskbarView::AttachedToWindow() -+{ -+ ticks = 0; -+ BMessage* tickMsg = new BMessage('LIVE'); -+ BMessageRunner *runner = new BMessageRunner( this, tickMsg, 1000000 ); -+ color = Parent()->ViewColor(); -+ BView::AttachedToWindow(); -+} -+ -+void DeskbarView::Draw(BRect r) -+{ -+ SetDrawingMode(B_OP_COPY); -+ SetHighColor(Parent()->ViewColor()); -+ FillRect(Bounds()); -+ if(ticks>3 && !icon) { -+ SetHighColor(32,32,32,100); -+ SetDrawingMode(B_OP_ALPHA); -+ DrawChar('?',BPoint(4,12)); -+ } -+ if(icon) { -+ float dx = (Bounds().Width() - icon->Bounds().Width())/2; -+ float dy = (Bounds().Height() - icon->Bounds().Height())/2; -+ SetDrawingMode(B_OP_ALPHA); -+ DrawBitmap(icon,BPoint(dx,dy)); -+ } -+} -+ -+void DeskbarView::MouseMoved(BPoint point, uint32 transit,const BMessage *message) -+{ -+} -+ -+void DeskbarView::MouseUp(BPoint point) -+{ -+ uint32 buttons = lastButtons; -+ -+ BMessage *mes = new BMessage('TRAY'); -+ mes->AddInt32("event",TRAY_MOUSEUP); -+ mes->AddPoint("point",ConvertToScreen(point)); -+ mes->AddInt32("buttons",buttons); -+ mes->AddInt32("clicks",1); -+ mes->AddData("qtrayobject",B_ANY_TYPE,&traysysobject,sizeof(void*)); -+ ReplyMessenger.SendMessage(mes); -+ -+} -+ -+void DeskbarView::MouseDown(BPoint point) -+{ -+ uint32 buttons = Window()->CurrentMessage()->FindInt32("buttons"); -+ int32 clicks = Window()->CurrentMessage()->FindInt32("clicks"); -+ lastButtons = buttons; -+ -+ BMessage *mes = new BMessage('TRAY'); -+ mes->AddInt32("event",TRAY_MOUSEDOWN); -+ mes->AddPoint("point",ConvertToScreen(point)); -+ mes->AddInt32("buttons",buttons); -+ mes->AddInt32("clicks",clicks); -+ mes->AddData("qtrayobject",B_ANY_TYPE,&traysysobject,sizeof(void*)); -+ ReplyMessenger.SendMessage(mes); -+ -+} -+ -+void DeskbarView::MessageReceived(BMessage *message) { -+// message->PrintToStream(); -+ switch (message->what) -+ { -+ case 'LIVE': -+ { -+ ticks++; -+ Invalidate(); -+ team_info teamInfo; -+ status_t error = get_team_info(team, &teamInfo); -+ if (error != B_OK && id>0) { -+ BDeskbar deskbar; -+ deskbar.RemoveItem(id); -+ } else { -+ BMessage *mes=new BMessage(*message); -+ mes->AddRect("rect",ConvertToScreen(Bounds())); -+ ReplyMessenger.SendMessage(mes); -+ } -+ break; -+ } -+ case B_SET_PROPERTY: -+ { -+ switch( message->FindInt32("what2") ) { -+ case 'TTIP': -+ { -+ const char *tip=NULL; -+ status_t res = message->FindString("tooltip",&tip); -+ -+ if(!tip || res!=B_OK) -+ tip = applicationName.String(); -+ if(strlen(tip)==0) -+ tip = applicationName.String(); -+ if(strlen(tip)!=0) -+ SetToolTip(tip); -+ -+ break; -+ } -+ case 'BITS': -+ { -+ BBitmap *oldicon=icon; -+ icon=NULL; -+ delete oldicon; -+ BMessage bits; -+ message->FindMessage("icon", &bits); -+ icon = new BBitmap(&bits); -+ bits.MakeEmpty(); -+ Invalidate(); -+ break; -+ } -+ case '_ID_': -+ { -+ message->FindInt32("ReplicantID",&id); -+ break; -+ } -+ case 'MSGR': -+ { -+ ssize_t numBytes; -+ const char *name=NULL; -+ message->FindMessenger("messenger", &ReplyMessenger); -+ message->FindData("qtrayobject",B_ANY_TYPE,&traysysobject,&numBytes); -+ if(message->FindString("application_name",&name)==B_OK) -+ applicationName.SetTo(name); -+ break; -+ } -+ } -+ } -+ break; -+ default: -+ BView::MessageReceived(message); -+ break; -+ } -+} -+ -+DeskbarView::~DeskbarView() -+{ -+ -+} -+ -+BMessenger GetMessenger(void) -+{ -+ BMessenger aResult; -+ status_t aErr = B_OK; -+ BMessenger aDeskbar(DBAR_SIGNATURE, -1, &aErr); -+ if (aErr != B_OK)return aResult; -+ -+ BMessage aMessage(B_GET_PROPERTY); -+ -+ aMessage.AddSpecifier("Messenger"); -+ aMessage.AddSpecifier("Shelf"); -+ aMessage.AddSpecifier("View", "Status"); -+ aMessage.AddSpecifier("Window", "Deskbar"); -+ -+ BMessage aReply; -+ -+ if (aDeskbar.SendMessage(&aMessage, &aReply, 1000000, 1000000) == B_OK) -+ aReply.FindMessenger("result", &aResult); -+ return aResult; -+} -+ -+ -+status_t SendMessageToReplicant(int32 index, BMessage *msg) -+{ -+ BMessage aReply; -+ status_t aErr = B_OK; -+ -+ msg->AddInt32( "what2", msg->what ); -+ msg->what = B_SET_PROPERTY; -+ -+ BMessage uid_specifier(B_ID_SPECIFIER); -+ -+ msg->AddSpecifier("View"); -+ uid_specifier.AddInt32("id", index); -+ uid_specifier.AddString("property", "Replicant"); -+ msg->AddSpecifier(&uid_specifier); -+ -+ aErr = GetMessenger().SendMessage( msg, (BHandler*)NULL, 1000000 ); -+ return aErr; -+} -+ -+int32 LoadIcon(team_id tid) -+{ -+ BDeskbar deskbar; -+ int32 id=-1; -+ -+ deskbar.AddItem(new DeskbarView(tid),&id); -+ -+ if(id>0) { -+ BMessage msg('_ID_'); -+ msg.AddInt32("ReplicantID",id); -+ SendMessageToReplicant(id,&msg); -+ } -+ -+ return id; -+} -+ -+int32 LoadIcon(void) -+{ -+ thread_info threadInfo; -+ status_t error = get_thread_info(find_thread(NULL), &threadInfo); -+ if (error != B_OK) { -+ return 0; -+ } -+ team_id sTeam = threadInfo.team; -+ -+ return LoadIcon(sTeam); -+} -+ -+void RemoveIcon(int32 id) -+{ -+ BDeskbar deskbar; -+ deskbar.RemoveItem(id); -+} -+ -+int main(int argc, char *argv[]) -+{ -+ BApplication(APP_SIGNATURE); -+ -+ if(argc<2) { -+#ifdef GCC4BUILD -+ printf("QtSystrayManager for Haiku v0.1\n\tqsystray [team_id]\n\n"); -+#else -+ printf("QtSystrayManager for Haiku v0.1 (gcc2 loader)\n\tqsystray_gcc2 [team_id]\n\n"); -+#endif -+ exit(0); -+ } -+ -+ int32 team_id = atoi(argv[1]); -+ int32 id = LoadIcon(team_id); -+#ifdef GCC4BUILD -+ if(id<=0) { -+ char cmd[128]; -+ sprintf(cmd,"qsystray_gcc2 %d",team_id); -+ return system(cmd); -+ } -+#endif -+ printf("%d\n",id); -+ -+ return id; -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray.h qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray.h ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray.h 2011-06-13 22:06:43.147324928 +0000 -@@ -0,0 +1,45 @@ -+#ifndef DESKBARVIEW_H -+#define DESKBARVIEW_H -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define TRAY_MOUSEDOWN 1 -+#define TRAY_MOUSEUP 2 -+ -+class DeskbarView : public BView { -+ public: -+ DeskbarView(team_id tid); -+ ~DeskbarView(); -+ void MouseDown(BPoint point); -+ void MouseUp(BPoint point); -+ void MouseMoved(BPoint point, uint32 transit,const BMessage *message); -+ void Draw(BRect r); -+ void MessageReceived(BMessage *message); -+ void AttachedToWindow(); -+ DeskbarView(BMessage *message); -+ static DeskbarView *Instantiate(BMessage *data); -+ virtual status_t Archive(BMessage *data, bool deep = true) const; -+ -+ private: -+ BPopUpMenu *RightClickPopUp; -+ BBitmap *fBitmap; -+ int32 lastButtons; -+ entry_ref appref; -+ rgb_color color; -+ team_id team; -+ int32 id; -+ unsigned int ticks; -+ BBitmap *icon; -+ BMessenger ReplyMessenger; -+ const void *traysysobject; -+ BString applicationName; -+}; -+ -+#endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray_gcc2.rdef qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray_gcc2.rdef ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray_gcc2.rdef 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray_gcc2.rdef 2011-06-13 22:06:43.148897792 +0000 -@@ -0,0 +1,13 @@ -+resource app_signature "application/x-vnd.QtSystrayManager_gcc2"; -+ -+resource app_flags B_MULTIPLE_LAUNCH | B_BACKGROUND_APP; -+ -+resource app_version { -+ major = 0, -+ middle = 1, -+ minor = 0, -+ variety = 0, -+ internal = 0, -+ short_info = "QtSystrayManager", -+ long_info = "QtSystrayManager (gcc2 loader)" -+}; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray_gcc4.rdef qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray_gcc4.rdef ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/haiku-tools/qsystray/qsystray_gcc4.rdef 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/haiku-tools/qsystray/qsystray_gcc4.rdef 2011-06-13 22:06:43.150208512 +0000 -@@ -0,0 +1,13 @@ -+resource app_signature "application/x-vnd.QtSystrayManager_gcc4"; -+ -+resource app_flags B_MULTIPLE_LAUNCH | B_BACKGROUND_APP; -+ -+resource app_version { -+ major = 0, -+ middle = 1, -+ minor = 0, -+ variety = 0, -+ internal = 0, -+ short_info = "QtSystrayManager", -+ long_info = "QtSystrayManager" -+}; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h 2011-03-30 05:18:55.028573696 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/JavaScriptCore/wtf/MathExtras.h 2011-06-13 22:06:43.152043520 +0000 -@@ -190,7 +190,7 @@ inline float deg2turn(float d) { return - inline float rad2grad(float r) { return r * 200.0f / piFloat; } - inline float grad2rad(float g) { return g * piFloat / 200.0f; } - --#if !COMPILER(MSVC) && !COMPILER(RVCT) && !OS(ANDROID) && !COMPILER(WINSCW) -+#if !COMPILER(MSVC) && !COMPILER(RVCT) && !OS(ANDROID) && !COMPILER(WINSCW) && !OS(HAIKU) - using std::isfinite; - using std::isinf; - using std::isnan; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore/WebCore.pri qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/WebCore/WebCore.pri ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore/WebCore.pri 2011-03-30 05:18:48.014155776 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/WebCore/WebCore.pri 2011-06-13 22:06:43.154927104 +0000 -@@ -86,7 +86,7 @@ greaterThan(QT_MINOR_VERSION, 5) { - - # Nescape plugins support (NPAPI) - !contains(DEFINES, ENABLE_NETSCAPE_PLUGIN_API=.) { -- unix|win32-*:!embedded:!wince*: { -+ unix|win32-*:!embedded:!wince*:!haiku: { - DEFINES += ENABLE_NETSCAPE_PLUGIN_API=1 - } else { - DEFINES += ENABLE_NETSCAPE_PLUGIN_API=0 -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore/websockets/WebSocketHandshake.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/WebCore/websockets/WebSocketHandshake.cpp ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore/websockets/WebSocketHandshake.cpp 2011-03-30 05:18:51.049545216 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/WebCore/websockets/WebSocketHandshake.cpp 2011-06-13 22:06:43.157548544 +0000 -@@ -54,6 +54,29 @@ const char webSocketServerHandshakeHeade - const char webSocketUpgradeHeader[] = "Upgrade: WebSocket\r\n"; - const char webSocketConnectionHeader[] = "Connection: Upgrade\r\n"; - -+#if !defined(strnstr) && defined(__HAIKU__) -+static char * -+strnstr(const char *s, const char *find, size_t slen) -+{ -+ char c, sc; -+ size_t len; -+ -+ if ((c = *find++) != '\0') { -+ len = strlen(find); -+ do { -+ do { -+ if (slen-- < 1 || (sc = *s++) == '\0') -+ return (NULL); -+ } while (sc != c); -+ if (len > slen) -+ return (NULL); -+ } while (strncmp(s, find, len) != 0); -+ s--; -+ } -+ return ((char *)s); -+} -+#endif -+ - static String extractResponseCode(const char* header, int len) - { - const char* space1 = 0; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/include/QtWebKit/libdummy.prl qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/include/QtWebKit/libdummy.prl ---- qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/include/QtWebKit/libdummy.prl 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/3rdparty/webkit/include/QtWebKit/libdummy.prl 2011-06-13 22:06:43.159383552 +0000 -@@ -0,0 +1,5 @@ -+QMAKE_PRL_BUILD_DIR = /HaikuStorage/NewQt/qt-everywhere-opensource-src-4.7.3/./src/3rdparty/webkit/WebKit/qt/Api -+QMAKE_PRO_INPUT = DerivedSources.pro -+QMAKE_PRL_TARGET = libdummy.so.1.0.0 -+QMAKE_PRL_CONFIG = lex yacc warn_on uic resources qt warn_on release link_prl def_files_disabled exceptions no_mocdepend release stl qt_no_framework release shared dll stl mmx 3dnow sse sse2 sse3 ssse3 sse4_1 sse4_2 avx dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build shared dll moc thread -+QMAKE_PRL_VERSION = 1.0.0 -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/animation/qvariantanimation.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/animation/qvariantanimation.cpp ---- qt-everywhere-opensource-src-4.7.3/src/corelib/animation/qvariantanimation.cpp 2011-03-30 05:19:08.061079552 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/animation/qvariantanimation.cpp 2011-06-13 22:06:43.186384384 +0000 -@@ -434,9 +434,15 @@ void QVariantAnimation::registerInterpol - #ifndef QT_NO_THREAD - QMutexLocker locker(QMutexPool::globalInstanceGet(interpolators)); - #endif -+#if defined(Q_OS_HAIKU) //temporary dirty hack -+if(interpolators) { -+#endif - if (int(interpolationType) >= interpolators->count()) - interpolators->resize(int(interpolationType) + 1); - interpolators->replace(interpolationType, func); -+#if defined(Q_OS_HAIKU) -+} -+#endif - } - - -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/concurrent/qtconcurrentiteratekernel.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/concurrent/qtconcurrentiteratekernel.cpp ---- qt-everywhere-opensource-src-4.7.3/src/corelib/concurrent/qtconcurrentiteratekernel.cpp 2011-03-30 05:19:08.058458112 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/concurrent/qtconcurrentiteratekernel.cpp 2011-06-13 22:06:43.188219392 +0000 -@@ -54,6 +54,9 @@ - #elif defined(Q_OS_WIN) - #include - #endif -+#if defined(Q_OS_HAIKU) -+#include -+#endif - - #include "private/qfunctions_p.h" - -@@ -67,7 +70,14 @@ enum { - MedianSize = 7 - }; - --#if defined(Q_OS_MAC) -+#if defined(Q_OS_HAIKU) -+ -+static qint64 getticks() -+{ -+ return system_time(); -+} -+ -+#elif defined(Q_OS_MAC) - - static qint64 getticks() - { -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/corelib.pro qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/corelib.pro ---- qt-everywhere-opensource-src-4.7.3/src/corelib/corelib.pro 2011-03-30 05:19:08.013369344 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/corelib.pro 2011-06-13 22:06:43.190578688 +0000 -@@ -23,6 +23,7 @@ mac|darwin:LIBS_PRIVATE += -framework Ap - - mac:lib_bundle:DEFINES += QT_NO_DEBUG_PLUGIN_CHECK - win32:DEFINES-=QT_NO_CAST_TO_ASCII -+haiku:DEFINES += QT_NO_SHAREDMEMORY - - QMAKE_LIBS += $$QMAKE_LIBS_CORE - -@@ -40,3 +41,7 @@ symbian: { - "$${LITERAL_HASH}endif" - MMP_RULES += pagingBlock - } -+ -+haiku: { -+ LIBS_PRIVATE += -lbe -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.cpp ---- qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.cpp 2011-06-13 22:06:43.192937984 +0000 -@@ -0,0 +1,34 @@ -+/* License Info */ -+static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=Open Source\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=OpenSource\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+ -+/* Installation date */ -+static const char qt_configure_installation [12+11] = "qt_instdate=2011-06-13"; -+/* Installation Info */ -+static const char qt_configure_prefix_path_str [256 + 12] = "qt_prfxpath=/boot/common\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_documentation_path_str[256 + 12] = "qt_docspath=/boot/common/documentation/doc/Qt\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_headers_path_str [256 + 12] = "qt_hdrspath=/boot/common/include\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_libraries_path_str [256 + 12] = "qt_libspath=/boot/common/lib\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_binaries_path_str [256 + 12] = "qt_binspath=/boot/common/bin\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_plugins_path_str [256 + 12] = "qt_plugpath=/boot/common/add-ons/Qt/plugins\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_imports_path_str [256 + 12] = "qt_impspath=/boot/common/add-ons/Qt/imports\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_data_path_str [256 + 12] = "qt_datapath=/boot/common/data/Qt\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_translations_path_str [256 + 12] = "qt_trnspath=/boot/common/data/Qt/translations\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_settings_path_str [256 + 12] = "qt_stngpath=/boot/common/settings/Qt\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_examples_path_str [256 + 12] = "qt_xmplpath=/boot/apps/Qt/Examples\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+static const char qt_configure_demos_path_str [256 + 12] = "qt_demopath=/boot/apps/Qt/Demos\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -+/* strlen( "qt_lcnsxxxx" ) == 12 */ -+#define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12; -+#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12; -+#define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12; -+#define QT_CONFIGURE_DOCUMENTATION_PATH qt_configure_documentation_path_str + 12; -+#define QT_CONFIGURE_HEADERS_PATH qt_configure_headers_path_str + 12; -+#define QT_CONFIGURE_LIBRARIES_PATH qt_configure_libraries_path_str + 12; -+#define QT_CONFIGURE_BINARIES_PATH qt_configure_binaries_path_str + 12; -+#define QT_CONFIGURE_PLUGINS_PATH qt_configure_plugins_path_str + 12; -+#define QT_CONFIGURE_IMPORTS_PATH qt_configure_imports_path_str + 12; -+#define QT_CONFIGURE_DATA_PATH qt_configure_data_path_str + 12; -+#define QT_CONFIGURE_TRANSLATIONS_PATH qt_configure_translations_path_str + 12; -+#define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12; -+#define QT_CONFIGURE_EXAMPLES_PATH qt_configure_examples_path_str + 12; -+#define QT_CONFIGURE_DEMOS_PATH qt_configure_demos_path_str + 12; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.h qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.h ---- qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.h 2011-06-13 22:06:43.194510848 +0000 -@@ -0,0 +1,225 @@ -+/* Everything */ -+ -+/* Qt Edition */ -+#ifndef QT_EDITION -+# define QT_EDITION QT_EDITION_OPENSOURCE -+#endif -+ -+/* Machine byte-order */ -+#define Q_BIG_ENDIAN 4321 -+#define Q_LITTLE_ENDIAN 1234 -+#define QT_BUILD_KEY "i386 haiku g++-4 full-config" -+#define QT_BUILD_KEY_COMPAT "BePC Haiku g++-4 full-config" -+ -+#ifdef QT_BOOTSTRAPPED -+#define Q_BYTE_ORDER Q_LITTLE_ENDIAN -+#else -+#define Q_BYTE_ORDER Q_LITTLE_ENDIAN -+#endif -+/* Machine Architecture */ -+#ifndef QT_BOOTSTRAPPED -+# define QT_ARCH_I386 -+#else -+# define QT_ARCH_I386 -+#endif -+/* Compile time features */ -+#define QT_POINTER_SIZE 4 -+ -+#ifndef QT_BOOTSTRAPPED -+ -+#if defined(QT_NO_ALSA) && defined(QT_ALSA) -+# undef QT_NO_ALSA -+#elif !defined(QT_NO_ALSA) && !defined(QT_ALSA) -+# define QT_NO_ALSA -+#endif -+ -+#if defined(QT_NO_CLOCK_MONOTONIC) && defined(QT_CLOCK_MONOTONIC) -+# undef QT_NO_CLOCK_MONOTONIC -+#elif !defined(QT_NO_CLOCK_MONOTONIC) && !defined(QT_CLOCK_MONOTONIC) -+# define QT_NO_CLOCK_MONOTONIC -+#endif -+ -+#if defined(QT_NO_CUPS) && defined(QT_CUPS) -+# undef QT_NO_CUPS -+#elif !defined(QT_NO_CUPS) && !defined(QT_CUPS) -+# define QT_NO_CUPS -+#endif -+ -+#if defined(QT_NO_DBUS) && defined(QT_DBUS) -+# undef QT_NO_DBUS -+#elif !defined(QT_NO_DBUS) && !defined(QT_DBUS) -+# define QT_NO_DBUS -+#endif -+ -+#if defined(QT_NO_EGL) && defined(QT_EGL) -+# undef QT_NO_EGL -+#elif !defined(QT_NO_EGL) && !defined(QT_EGL) -+# define QT_NO_EGL -+#endif -+ -+#if defined(QT_NO_GETIFADDRS) && defined(QT_GETIFADDRS) -+# undef QT_NO_GETIFADDRS -+#elif !defined(QT_NO_GETIFADDRS) && !defined(QT_GETIFADDRS) -+# define QT_NO_GETIFADDRS -+#endif -+ -+#if defined(QT_NO_GLIB) && defined(QT_GLIB) -+# undef QT_NO_GLIB -+#elif !defined(QT_NO_GLIB) && !defined(QT_GLIB) -+# define QT_NO_GLIB -+#endif -+ -+#if defined(QT_NO_GSTREAMER) && defined(QT_GSTREAMER) -+# undef QT_NO_GSTREAMER -+#elif !defined(QT_NO_GSTREAMER) && !defined(QT_GSTREAMER) -+# define QT_NO_GSTREAMER -+#endif -+ -+#if defined(QT_NO_GUI) && defined(QT_GUI) -+# undef QT_NO_GUI -+#elif !defined(QT_NO_GUI) && !defined(QT_GUI) -+# define QT_NO_GUI -+#endif -+ -+#if defined(QT_NO_ICD) && defined(QT_ICD) -+# undef QT_NO_ICD -+#elif !defined(QT_NO_ICD) && !defined(QT_ICD) -+# define QT_NO_ICD -+#endif -+ -+#if defined(QT_NO_ICONV) && defined(QT_ICONV) -+# undef QT_NO_ICONV -+#elif !defined(QT_NO_ICONV) && !defined(QT_ICONV) -+# define QT_NO_ICONV -+#endif -+ -+#if defined(QT_NO_IMAGEFORMAT_JPEG) && defined(QT_IMAGEFORMAT_JPEG) -+# undef QT_NO_IMAGEFORMAT_JPEG -+#elif !defined(QT_NO_IMAGEFORMAT_JPEG) && !defined(QT_IMAGEFORMAT_JPEG) -+# define QT_NO_IMAGEFORMAT_JPEG -+#endif -+ -+#if defined(QT_NO_IMAGEFORMAT_MNG) && defined(QT_IMAGEFORMAT_MNG) -+# undef QT_NO_IMAGEFORMAT_MNG -+#elif !defined(QT_NO_IMAGEFORMAT_MNG) && !defined(QT_IMAGEFORMAT_MNG) -+# define QT_NO_IMAGEFORMAT_MNG -+#endif -+ -+#if defined(QT_NO_IMAGEFORMAT_TIFF) && defined(QT_IMAGEFORMAT_TIFF) -+# undef QT_NO_IMAGEFORMAT_TIFF -+#elif !defined(QT_NO_IMAGEFORMAT_TIFF) && !defined(QT_IMAGEFORMAT_TIFF) -+# define QT_NO_IMAGEFORMAT_TIFF -+#endif -+ -+#if defined(QT_NO_INOTIFY) && defined(QT_INOTIFY) -+# undef QT_NO_INOTIFY -+#elif !defined(QT_NO_INOTIFY) && !defined(QT_INOTIFY) -+# define QT_NO_INOTIFY -+#endif -+ -+#if defined(QT_NO_MREMAP) && defined(QT_MREMAP) -+# undef QT_NO_MREMAP -+#elif !defined(QT_NO_MREMAP) && !defined(QT_MREMAP) -+# define QT_NO_MREMAP -+#endif -+ -+#if defined(QT_NO_NAS) && defined(QT_NAS) -+# undef QT_NO_NAS -+#elif !defined(QT_NO_NAS) && !defined(QT_NAS) -+# define QT_NO_NAS -+#endif -+ -+#if defined(QT_NO_NIS) && defined(QT_NIS) -+# undef QT_NO_NIS -+#elif !defined(QT_NO_NIS) && !defined(QT_NIS) -+# define QT_NO_NIS -+#endif -+ -+#if defined(QT_NO_OPENGL) && defined(QT_OPENGL) -+# undef QT_NO_OPENGL -+#elif !defined(QT_NO_OPENGL) && !defined(QT_OPENGL) -+# define QT_NO_OPENGL -+#endif -+ -+#if defined(QT_NO_OPENVG) && defined(QT_OPENVG) -+# undef QT_NO_OPENVG -+#elif !defined(QT_NO_OPENVG) && !defined(QT_OPENVG) -+# define QT_NO_OPENVG -+#endif -+ -+#if defined(QT_NO_PULSEAUDIO) && defined(QT_PULSEAUDIO) -+# undef QT_NO_PULSEAUDIO -+#elif !defined(QT_NO_PULSEAUDIO) && !defined(QT_PULSEAUDIO) -+# define QT_NO_PULSEAUDIO -+#endif -+ -+#if defined(QT_NO_S60) && defined(QT_S60) -+# undef QT_NO_S60 -+#elif !defined(QT_NO_S60) && !defined(QT_S60) -+# define QT_NO_S60 -+#endif -+ -+#if defined(QT_NO_STYLE_GTK) && defined(QT_STYLE_GTK) -+# undef QT_NO_STYLE_GTK -+#elif !defined(QT_NO_STYLE_GTK) && !defined(QT_STYLE_GTK) -+# define QT_NO_STYLE_GTK -+#endif -+ -+#if defined(QT_NO_STYLE_S60) && defined(QT_STYLE_S60) -+# undef QT_NO_STYLE_S60 -+#elif !defined(QT_NO_STYLE_S60) && !defined(QT_STYLE_S60) -+# define QT_NO_STYLE_S60 -+#endif -+ -+#if defined(QT_NO_SXE) && defined(QT_SXE) -+# undef QT_NO_SXE -+#elif !defined(QT_NO_SXE) && !defined(QT_SXE) -+# define QT_NO_SXE -+#endif -+ -+#if defined(QT_NO_ZLIB) && defined(QT_ZLIB) -+# undef QT_NO_ZLIB -+#elif !defined(QT_NO_ZLIB) && !defined(QT_ZLIB) -+# define QT_NO_ZLIB -+#endif -+ -+#if defined(QT_RUNTIME_XCURSOR) && defined(QT_NO_RUNTIME_XCURSOR) -+# undef QT_RUNTIME_XCURSOR -+#elif !defined(QT_RUNTIME_XCURSOR) && !defined(QT_NO_RUNTIME_XCURSOR) -+# define QT_RUNTIME_XCURSOR -+#endif -+ -+#if defined(QT_RUNTIME_XFIXES) && defined(QT_NO_RUNTIME_XFIXES) -+# undef QT_RUNTIME_XFIXES -+#elif !defined(QT_RUNTIME_XFIXES) && !defined(QT_NO_RUNTIME_XFIXES) -+# define QT_RUNTIME_XFIXES -+#endif -+ -+#if defined(QT_RUNTIME_XINERAMA) && defined(QT_NO_RUNTIME_XINERAMA) -+# undef QT_RUNTIME_XINERAMA -+#elif !defined(QT_RUNTIME_XINERAMA) && !defined(QT_NO_RUNTIME_XINERAMA) -+# define QT_RUNTIME_XINERAMA -+#endif -+ -+#if defined(QT_RUNTIME_XINPUT) && defined(QT_NO_RUNTIME_XINPUT) -+# undef QT_RUNTIME_XINPUT -+#elif !defined(QT_RUNTIME_XINPUT) && !defined(QT_NO_RUNTIME_XINPUT) -+# define QT_RUNTIME_XINPUT -+#endif -+ -+#if defined(QT_RUNTIME_XRANDR) && defined(QT_NO_RUNTIME_XRANDR) -+# undef QT_RUNTIME_XRANDR -+#elif !defined(QT_RUNTIME_XRANDR) && !defined(QT_NO_RUNTIME_XRANDR) -+# define QT_RUNTIME_XRANDR -+#endif -+ -+#if defined(QT_USE_MATH_H_FLOATS) && defined(QT_NO_USE_MATH_H_FLOATS) -+# undef QT_USE_MATH_H_FLOATS -+#elif !defined(QT_USE_MATH_H_FLOATS) && !defined(QT_NO_USE_MATH_H_FLOATS) -+# define QT_USE_MATH_H_FLOATS -+#endif -+ -+#endif // QT_BOOTSTRAPPED -+ -+#define QT_VISIBILITY_AVAILABLE -+ -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.h.qmake qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.h.qmake ---- qt-everywhere-opensource-src-4.7.3/src/corelib/global/qconfig.h.qmake 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qconfig.h.qmake 2011-06-13 22:06:43.196345856 +0000 -@@ -0,0 +1 @@ -+/* All features enabled while building qmake */ -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/global/qglobal.h qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qglobal.h ---- qt-everywhere-opensource-src-4.7.3/src/corelib/global/qglobal.h 2011-03-30 05:19:08.006553600 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qglobal.h 2011-06-13 22:06:43.213385216 +0000 -@@ -173,6 +173,7 @@ namespace QT_NAMESPACE {} - LYNX - LynxOS - BSD4 - Any BSD 4.4 system - UNIX - Any UNIX BSD/SYSV system -+ HAIKU - Haiku - */ - - #if defined(__APPLE__) && (defined(__GNUC__) || defined(__xlC__) || defined(__xlc__)) -@@ -256,6 +257,8 @@ namespace QT_NAMESPACE {} - # define Q_OS_INTEGRITY - #elif defined(VXWORKS) /* there is no "real" VxWorks define - this has to be set in the mkspec! */ - # define Q_OS_VXWORKS -+#elif defined(__HAIKU__) -+# define Q_OS_HAIKU - #elif defined(__MAKEDEPEND__) - #else - # error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com" -@@ -781,6 +784,7 @@ namespace QT_NAMESPACE {} - S60 - Symbian S60 - PM - unsupported - WIN16 - unsupported -+ HAIKU - Haiku, Application Server - */ - - #if defined(Q_OS_MSDOS) -@@ -788,6 +792,8 @@ namespace QT_NAMESPACE {} - # error "Qt requires Win32 and does not work with Windows 3.x" - #elif defined(_WIN32_X11_) - # define Q_WS_X11 -+#elif defined(Q_OS_HAIKU) -+# define Q_WS_HAIKU - #elif defined(Q_OS_WIN32) - # define Q_WS_WIN32 - # if defined(Q_OS_WIN64) -@@ -820,6 +826,10 @@ namespace QT_NAMESPACE {} - # endif - #endif - -+#if defined(Q_OS_HAIKU) && defined (Q_WS_X11) -+#undef Q_WS_X11 -+#endif -+ - #if defined(Q_WS_WIN16) || defined(Q_WS_WIN32) || defined(Q_WS_WINCE) - # define Q_WS_WIN - #endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/global/qnamespace.h qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qnamespace.h ---- qt-everywhere-opensource-src-4.7.3/src/corelib/global/qnamespace.h 2011-03-30 05:19:08.006291456 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/global/qnamespace.h 2011-06-13 22:06:43.216006656 +0000 -@@ -1670,6 +1670,8 @@ public: - typedef void * HANDLE; - #elif defined(Q_OS_SYMBIAN) - typedef unsigned long int HANDLE; // equivalent to TUint32 -+#elif defined(Q_OS_HAIKU) -+ typedef unsigned long HANDLE; - #endif - typedef WindowFlags WFlags; - -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/io/qfsfileengine_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/io/qfsfileengine_unix.cpp ---- qt-everywhere-opensource-src-4.7.3/src/corelib/io/qfsfileengine_unix.cpp 2011-03-30 05:19:08.055312384 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/io/qfsfileengine_unix.cpp 2011-06-13 22:06:43.218628096 +0000 -@@ -625,6 +625,9 @@ QString QFSFileEngine::homePath() - QString home = rootPath(); - #else - QString home = QFile::decodeName(qgetenv("HOME")); -+#ifdef Q_OS_HAIKU -+ home += QLatin1String("/config/settings/Qt"); -+#endif - if (home.isNull()) - home = rootPath(); - #endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/io/qprocess_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/io/qprocess_unix.cpp ---- qt-everywhere-opensource-src-4.7.3/src/corelib/io/qprocess_unix.cpp 2011-03-30 05:19:08.050331648 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/io/qprocess_unix.cpp 2011-06-13 22:06:43.221249536 +0000 -@@ -792,8 +792,12 @@ qint64 QProcessPrivate::bytesAvailableFr - { - int nbytes = 0; - qint64 available = 0; -+#ifdef Q_OS_HAIKU -+ available = 1024; -+#else - if (::ioctl(stdoutChannel.pipe[0], FIONREAD, (char *) &nbytes) >= 0) - available = (qint64) nbytes; -+#endif - #if defined (QPROCESS_DEBUG) - qDebug("QProcessPrivate::bytesAvailableFromStdout() == %lld", available); - #endif -@@ -804,8 +808,12 @@ qint64 QProcessPrivate::bytesAvailableFr - { - int nbytes = 0; - qint64 available = 0; -+#ifdef Q_OS_HAIKU -+ available = 1024; -+#else - if (::ioctl(stderrChannel.pipe[0], FIONREAD, (char *) &nbytes) >= 0) - available = (qint64) nbytes; -+#endif - #if defined (QPROCESS_DEBUG) - qDebug("QProcessPrivate::bytesAvailableFromStderr() == %lld", available); - #endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/kernel/qsystemsemaphore_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/kernel/qsystemsemaphore_unix.cpp ---- qt-everywhere-opensource-src-4.7.3/src/corelib/kernel/qsystemsemaphore_unix.cpp 2011-03-30 05:19:08.063438848 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/kernel/qsystemsemaphore_unix.cpp 2011-06-13 22:06:43.223346688 +0000 -@@ -52,7 +52,9 @@ - #include - #include - #include -+#if !defined(Q_OS_HAIKU) - #include -+#endif - - #include - -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/thread/qthread_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/thread/qthread_p.h ---- qt-everywhere-opensource-src-4.7.3/src/corelib/thread/qthread_p.h 2011-03-30 05:19:08.008650752 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/thread/qthread_p.h 2011-06-13 22:06:43.225443840 +0000 -@@ -140,7 +140,7 @@ public: - QWaitCondition thread_done; - - static void *start(void *arg); --#if defined(Q_OS_SYMBIAN) -+#if defined(Q_OS_SYMBIAN) || defined(Q_OS_HAIKU) - static void finish(void *arg, bool lockAnyway=true, bool closeNativeHandle=true); - #else - static void finish(void *); -@@ -156,7 +156,7 @@ public: - static void finish(void *, bool lockAnyway=true); - #endif // Q_OS_WIN32 - --#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined (Q_OS_SYMBIAN) -+#if defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined (Q_OS_SYMBIAN) || defined (Q_OS_HAIKU) - bool terminationEnabled, terminatePending; - # endif - QThreadData *data; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/thread/qthread_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/thread/qthread_unix.cpp ---- qt-everywhere-opensource-src-4.7.3/src/corelib/thread/qthread_unix.cpp 2011-03-30 05:19:08.009699328 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/thread/qthread_unix.cpp 2011-06-13 22:06:43.228327424 +0000 -@@ -274,7 +274,7 @@ void QThreadPrivate::createEventDispatch - void *QThreadPrivate::start(void *arg) - { - // Symbian Open C supports neither thread cancellation nor cleanup_push. --#ifndef Q_OS_SYMBIAN -+#if !defined(Q_OS_SYMBIAN) && !defined(Q_OS_HAIKU) - pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL); - pthread_cleanup_push(QThreadPrivate::finish, arg); - #endif -@@ -319,7 +319,7 @@ void *QThreadPrivate::start(void *arg) - #endif - thr->run(); - --#ifdef Q_OS_SYMBIAN -+#if defined(Q_OS_SYMBIAN) || defined(Q_OS_HAIKU) - QThreadPrivate::finish(arg); - #else - pthread_cleanup_pop(1); -@@ -328,7 +328,7 @@ void *QThreadPrivate::start(void *arg) - return 0; - } - --#ifdef Q_OS_SYMBIAN -+#if defined(Q_OS_SYMBIAN) || defined(Q_OS_HAIKU) - void QThreadPrivate::finish(void *arg, bool lockAnyway, bool closeNativeHandle) - #else - void QThreadPrivate::finish(void *arg) -@@ -336,7 +336,7 @@ void QThreadPrivate::finish(void *arg) - { - QThread *thr = reinterpret_cast(arg); - QThreadPrivate *d = thr->d_func(); --#ifdef Q_OS_SYMBIAN -+#if defined(Q_OS_SYMBIAN) || defined(Q_OS_HAIKU) - if (lockAnyway) - #endif - d->mutex.lock(); -@@ -365,7 +365,7 @@ void QThreadPrivate::finish(void *arg) - d->data->symbian_thread_handle.Close(); - #endif - d->thread_done.wakeAll(); --#ifdef Q_OS_SYMBIAN -+#if defined(Q_OS_SYMBIAN) || defined(Q_OS_HAIKU) - if (lockAnyway) - #endif - d->mutex.unlock(); -@@ -634,7 +634,7 @@ void QThread::start(Priority priority) - if (code == EPERM) { - // caller does not have permission to set the scheduling - // parameters/policy --#ifndef Q_OS_SYMBIAN -+#if !defined(Q_OS_SYMBIAN) && !defined(Q_OS_HAIKU) - pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED); - #endif - code = -@@ -663,7 +663,7 @@ void QThread::terminate() - if (!d->thread_id) - return; - --#ifndef Q_OS_SYMBIAN -+#if !defined(Q_OS_SYMBIAN) && !defined(Q_OS_HAIKU) - int code = pthread_cancel(d->thread_id); - if (code) { - qWarning("QThread::start: Thread termination error: %s", -@@ -686,11 +686,14 @@ void QThread::terminate() - // 2. closeNativeSymbianHandle = false. We don't want to close the thread handle, - // because we need it here to terminate the thread. - QThreadPrivate::finish(this, false, false); -+#ifdef Q_OS_SYMBIAN - d->data->symbian_thread_handle.Terminate(KErrNone); - d->data->symbian_thread_handle.Close(); - #endif -- -- -+#ifdef Q_OS_HAIKU -+ pthread_kill(d->thread_id,0); -+#endif -+#endif - } - - bool QThread::wait(unsigned long time) -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/tools/qlocale.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/tools/qlocale.cpp ---- qt-everywhere-opensource-src-4.7.3/src/corelib/tools/qlocale.cpp 2011-03-30 05:19:08.013893632 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/tools/qlocale.cpp 2011-06-13 22:06:43.234356736 +0000 -@@ -63,6 +63,9 @@ QT_END_NAMESPACE - # include "qt_windows.h" - # include - #endif -+#if defined(Q_OS_HAIKU) -+#include -+#endif - #if !defined(QWS) && defined(Q_OS_MAC) - # include "private/qcore_mac_p.h" - # include -@@ -1249,6 +1252,78 @@ QVariant QSystemLocale::query(QueryType - return QVariant(); - } - -+#elif defined(Q_OS_HAIKU) && !defined(QT_BUILD_QMAKE) -+ -+QLocale QSystemLocale::fallbackLocale() const -+{ -+ BLanguage lang; -+ BLocale::Default()->GetLanguage(&lang); -+ return QLocale(QLatin1String(lang.ID())); -+} -+ -+QVariant QSystemLocale::query(QueryType type, QVariant in = QVariant()) const -+{ -+ BLanguage lang; -+ BLocale::Default()->GetLanguage(&lang); -+ -+ switch(type) { -+ case DecimalPoint: { -+ BString test, unitest; -+ BLocale::Default()->FormatNumber(&test,1.1); -+ BLocale::Default()->FormatNumber(&unitest,(int32)1); -+ QString result = QString().fromLocal8Bit(test.String()); -+ result.remove(QString().fromLocal8Bit(unitest.String())); -+ if(!result.isEmpty() && result.size()<=2) { -+ return result; -+ } -+ return QVariant(); -+ } -+ case GroupSeparator: { -+ BString test, unitest; -+ BLocale::Default()->FormatNumber(&test,(int32)11111); -+ BLocale::Default()->FormatNumber(&unitest,(int32)1); -+ QString result = QString().fromLocal8Bit(test.String()); -+ result.remove(QString().fromLocal8Bit(unitest.String())); -+ if(!result.isEmpty() && result.size()<=3) { -+ return result; -+ } -+ return QVariant(); -+ } -+ case LanguageId: -+ case CountryId: { -+ QString preferredLanguage = QString().fromLocal8Bit(lang.Code()); -+ QString preferredCountry(3, QChar()); -+ preferredCountry = QString().fromLocal8Bit(lang.CountryCode()); -+ QLocale::Language languageCode = (preferredLanguage.isEmpty() ? QLocale::C : codeToLanguage(preferredLanguage.data())); -+ QLocale::Country countryCode = (preferredCountry.isEmpty() ? QLocale::AnyCountry : codeToCountry(preferredCountry.data())); -+ const QLocalePrivate *d = findLocale(languageCode, countryCode); -+ if (type == LanguageId) { -+ return (QLocale::Language)d->languageId(); -+ } -+ return (QLocale::Country)d->countryId(); -+ } -+ case MeasurementSystem: { -+ BFormattingConventions conventions; -+ BLocale::Default()->GetFormattingConventions(&conventions); -+ if(conventions.MeasurementKind()==B_METRIC) { -+ return QLocale::MetricSystem; -+ } else { -+ return QLocale::ImperialSystem; -+ } -+ } -+ case NegativeSign: -+ case PositiveSign: -+ case ZeroDigit: -+ break; -+ case AMText: -+ case PMText: -+ break; -+ default: -+ break; -+ } -+ return QVariant(); -+} -+ - #elif defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN) - - static uint unixGetSystemMeasurementSystem() -diff -rupN qt-everywhere-opensource-src-4.7.3/src/corelib/tools/tools.pri qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/tools/tools.pri ---- qt-everywhere-opensource-src-4.7.3/src/corelib/tools/tools.pri 2011-03-30 05:19:08.024117248 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/corelib/tools/tools.pri 2011-06-13 22:06:43.235929600 +0000 -@@ -110,5 +110,5 @@ INCLUDEPATH += ../3rdparty/md5 \ - ../3rdparty/md4 - - # Note: libm should be present by default becaue this is C++ --!macx-icc:!vxworks:!symbian:unix:LIBS_PRIVATE += -lm -+!macx-icc:!vxworks:!symbian:!haiku:unix:LIBS_PRIVATE += -lm - -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/dialogs.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/dialogs.pri ---- qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/dialogs.pri 2011-03-30 05:19:03.013369344 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/dialogs.pri 2011-06-13 22:06:43.238026752 +0000 -@@ -61,6 +61,11 @@ win32 { - !win32-borland:!wince*: LIBS += -lshell32 # the filedialog needs this library - } - -+haiku { -+ SOURCES += dialogs/qfiledialog_haiku.cpp -+ LIBS += -ltracker # the filedialog needs this library -+} -+ - !mac:!embedded:!symbian:unix { - HEADERS += dialogs/qpagesetupdialog_unix_p.h - SOURCES += dialogs/qprintdialog_unix.cpp \ -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/qfiledialog.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/qfiledialog.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/qfiledialog.cpp 2011-03-30 05:19:03.020185088 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/qfiledialog.cpp 2011-06-13 22:06:43.243269632 +0000 -@@ -292,7 +292,7 @@ Q_GUI_EXPORT _qt_filedialog_save_filenam - This signal is emitted when the user selects a \a filter. - */ - --#if defined(Q_WS_WIN) || defined(Q_WS_MAC) -+#if defined(Q_WS_WIN) || defined(Q_WS_MAC) || defined(Q_WS_HAIKU) - bool Q_GUI_EXPORT qt_use_native_dialogs = true; // for the benefit of testing tools, until we have a proper API - #endif - -@@ -1617,6 +1617,25 @@ extern QString qt_win_get_existing_direc - #endif - - /* -+ For Haiku file dialogs -+*/ -+#if defined(Q_WS_HAIKU) -+extern QString qt_haiku_get_open_file_name(const QFileDialogArgs &args, -+ QString *initialDirectory, -+ QString *selectedFilter); -+ -+extern QString qt_haiku_get_save_file_name(const QFileDialogArgs &args, -+ QString *initialDirectory, -+ QString *selectedFilter); -+ -+extern QStringList qt_haiku_get_open_file_names(const QFileDialogArgs &args, -+ QString *initialDirectory, -+ QString *selectedFilter); -+ -+extern QString qt_haiku_get_existing_directory(const QFileDialogArgs &args); -+#endif -+ -+/* - For Symbian file dialogs - */ - #if defined(Q_WS_S60) -@@ -1713,6 +1732,12 @@ QString QFileDialog::getOpenFileName(QWi - } - #endif - -+#if defined(Q_WS_HAIKU) -+ if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog)) { -+ return qt_haiku_get_open_file_name(args, &(args.directory), selectedFilter); -+ } -+#endif -+ - // create a qt dialog - QFileDialog dialog(args); - if (selectedFilter) -@@ -1806,6 +1831,12 @@ QStringList QFileDialog::getOpenFileName - } - #endif - -+#if defined(Q_WS_HAIKU) -+ if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog)) { -+ return qt_haiku_get_open_file_names(args, &(args.directory), selectedFilter); -+ } -+#endif -+ - // create a qt dialog - QFileDialog dialog(args); - if (selectedFilter) -@@ -1900,6 +1931,12 @@ QString QFileDialog::getSaveFileName(QWi - } - #endif - -+#if defined(Q_WS_HAIKU) -+ if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog)) { -+ return qt_haiku_get_save_file_name(args, &(args.directory), selectedFilter); -+ } -+#endif -+ - // create a qt dialog - QFileDialog dialog(args); - dialog.setAcceptMode(AcceptSave); -@@ -1984,6 +2021,11 @@ QString QFileDialog::getExistingDirector - } - #endif - -+#if defined(Q_WS_HAIKU) -+ if (qt_use_native_dialogs && !(args.options & DontUseNativeDialog) && (options & ShowDirsOnly)) -+ return qt_haiku_get_existing_directory(args); -+#endif -+ - // create a qt dialog - QFileDialog dialog(args); - if (dialog.exec() == QDialog::Accepted) { -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/qfiledialog_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/qfiledialog_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/dialogs/qfiledialog_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/dialogs/qfiledialog_haiku.cpp 2011-06-13 22:06:43.245628928 +0000 -@@ -0,0 +1,465 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: Qt Software Information (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial Usage -+** Licensees holding valid Qt Commercial licenses may use this file in -+** accordance with the Qt Commercial License Agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Nokia. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain -+** additional rights. These rights are described in the Nokia Qt LGPL -+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -+** package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** If you are unsure which license is appropriate for your use, please -+** contact the sales department at qt-sales@nokia.com. -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include "qfiledialog.h" -+ -+#ifndef QT_NO_FILEDIALOG -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "qeventloop.h" -+ -+#ifndef QT_NO_THREAD -+# include -+#endif -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+extern const char* qt_file_dialog_filter_reg_exp; // defined in qfiledialog.cpp -+extern QStringList qt_make_filter_list(const QString &filter); -+ -+const int maxNameLen = 1023; -+const int maxMultiLen = 65535; -+ -+class PanelLooper : public BLooper { -+public: -+ PanelLooper(); -+ virtual ~PanelLooper(); -+ virtual void MessageReceived(BMessage* message); -+ -+ int Wait(BFilePanel *panel); -+ -+ QString GetFilename(); -+ QStringList GetFilenames(); -+ -+private: -+ int state; -+ QString filename; -+ QStringList filenames; -+ entry_ref fRef; -+}; -+ -+ -+PanelLooper::PanelLooper() : BLooper("PanelLooper"), state(B_CANCEL) { } -+PanelLooper::~PanelLooper() { } -+ -+int -+PanelLooper::Wait(BFilePanel *panel) -+{ -+ QEventLoop::ProcessEventsFlags flags; -+ flags |= QEventLoop::WaitForMoreEvents; -+ while(panel->IsShowing()) { -+ QCoreApplication::processEvents(flags); -+ snooze(250); -+ } -+ return state; -+} -+ -+QString -+PanelLooper::GetFilename() -+{ -+ return filename; -+} -+ -+QStringList -+PanelLooper::GetFilenames() -+{ -+ return filenames; -+} -+ -+void -+PanelLooper::MessageReceived(BMessage* message) -+{ -+ switch (message->what) { -+ case B_SAVE_REQUESTED: -+ { -+ entry_ref ref; -+ const char *name; -+ message->FindRef("directory", &ref); -+ BDirectory dir(&ref); -+ BPath path(&dir, NULL, false); -+ message->FindString("name", &name); -+ path.Append(name); -+ filename = QString::fromUtf8(path.Path()); -+ filenames.append(filename); -+ -+ state = B_OK; -+ } -+ break; -+ case B_REFS_RECEIVED: -+ { -+ uint32 type; -+ int32 count; -+ -+ message->GetInfo("refs", &type, &count); -+ if ( type != B_REF_TYPE || count <= 0) -+ return; -+ -+ for ( long i = --count; i >= 0; i-- ) { -+ if ( message->FindRef("refs", i, &fRef) == B_OK ) { -+ BPath path(&fRef); -+ filename = QString::fromUtf8(path.Path()); -+ filenames.append(filename); -+ } -+ } -+ -+ state = B_OK; -+ } -+ break; -+ case B_CANCEL: -+ { -+ if(state!=B_OK) { -+ state = B_CANCEL; -+ filename.clear(); -+ filenames.clear(); -+ } -+ } -+ break; -+ default: -+ break; -+ } -+} -+ -+ -+// Returns the wildcard part of a filter. -+static QString qt_haiku_extract_filter(const QString &rawFilter) -+{ -+ QString result = rawFilter; -+ QRegExp r(QString::fromLatin1(qt_file_dialog_filter_reg_exp)); -+ int index = r.indexIn(result); -+ if (index >= 0) -+ result = r.cap(2); -+ QStringList list = result.split(QLatin1Char(' ')); -+ for(QStringList::iterator it = list.begin(); it < list.end(); ++it) { -+ if (*it == QLatin1String("*")) { -+ *it = QLatin1String("*.*"); -+ break; -+ } -+ } -+ return list.join(QLatin1String(";")); -+} -+ -+static QStringList qt_haiku_make_filters_list(const QString &filter) -+{ -+ QString f(filter); -+ -+ if (f.isEmpty()) -+ f = QFileDialog::tr("All Files (*.*)"); -+ -+ return qt_make_filter_list(f); -+} -+ -+// Makes a NUL-oriented Haiku filter from a Qt filter. -+static QString qt_haiku_filter(const QString &filter) -+{ -+ QStringList filterLst = qt_haiku_make_filters_list(filter); -+ QStringList::Iterator it = filterLst.begin(); -+ QString haikufilters; -+ for (; it != filterLst.end(); ++it) { -+ QString subfilter = *it; -+ if (!subfilter.isEmpty()) { -+ haikufilters += subfilter; -+ haikufilters += QChar(); -+ haikufilters += qt_haiku_extract_filter(subfilter); -+ haikufilters += QChar(); -+ } -+ } -+ haikufilters += QChar(); -+ return haikufilters; -+} -+ -+static QString qt_haiku_selected_filter(const QString &filter, int idx) -+{ -+ return qt_haiku_make_filters_list(filter).at((int)idx - 1); -+} -+ -+ -+QString qt_haiku_get_open_file_name(const QFileDialogArgs &args, -+ QString *initialDirectory, -+ QString *selectedFilter) -+{ -+ QString result; -+ -+ QString title = args.caption; -+ QString isel = args.selection; -+ -+ if (initialDirectory && initialDirectory->left(5) == QLatin1String("file:")) -+ initialDirectory->remove(0, 5); -+ QFileInfo fi(*initialDirectory); -+ -+ if (initialDirectory && !fi.isDir()) { -+ *initialDirectory = fi.absolutePath(); -+ if (isel.isEmpty()) -+ isel = fi.fileName(); -+ } -+ -+ if (!fi.exists() || *initialDirectory==QDir::homePath()) -+ *initialDirectory = QDesktopServices::storageLocation(QDesktopServices::HomeLocation); -+ -+/* int selFilIdx = 0; -+ -+ int idx = 0; -+ if (selectedFilter) { -+ QStringList filterLst = qt_haiku_make_filters_list(args.filter); -+ idx = filterLst.indexOf(*selectedFilter); -+ }*/ -+ -+ PanelLooper *looper = new PanelLooper(); -+ looper->Run(); -+ -+ BFilePanel *openpanel = new BFilePanel(B_OPEN_PANEL,NULL,NULL,0,false,NULL,NULL,true,true); -+ openpanel->SetTarget(BMessenger(looper)); -+ if(!title.isEmpty()) { -+ openpanel->Window()->SetTitle((title.toUtf8()).data()); -+ } -+ QByteArray dirpath = initialDirectory->toUtf8(); -+ openpanel->SetPanelDirectory(dirpath.data()); -+ openpanel->Show(); -+ -+ looper->Wait(openpanel); -+ result = looper->GetFilename(); -+ -+ delete openpanel; -+ -+ looper->Lock(); -+ looper->Quit(); -+ -+ if (result.isEmpty()) -+ return result; -+ -+ fi = result; -+ *initialDirectory = fi.path(); -+ -+ return fi.absoluteFilePath();; -+} -+ -+QString qt_haiku_get_save_file_name(const QFileDialogArgs &args, -+ QString *initialDirectory, -+ QString *selectedFilter) -+{ -+ QString result; -+ -+ QString title = args.caption; -+ QString isel = args.selection; -+ -+ if (initialDirectory && initialDirectory->left(5) == QLatin1String("file:")) -+ initialDirectory->remove(0, 5); -+ QFileInfo fi(*initialDirectory); -+ -+ if (initialDirectory && !fi.isDir()) { -+ *initialDirectory = fi.absolutePath(); -+ if (isel.isEmpty()) -+ isel = fi.fileName(); -+ } -+ -+ if (!fi.exists() || *initialDirectory==QDir::homePath()) -+ *initialDirectory = QDesktopServices::storageLocation(QDesktopServices::HomeLocation); -+/* -+ int selFilIdx = 0; -+ -+ int idx = 0; -+ if (selectedFilter) { -+ QStringList filterLst = qt_haiku_make_filters_list(args.filter); -+ idx = filterLst.indexOf(*selectedFilter); -+ } -+ -+ QString defaultSaveExt; -+ if (selectedFilter && !selectedFilter->isEmpty()) { -+ defaultSaveExt = qt_haiku_extract_filter(*selectedFilter); -+ // make sure we only have the extension -+ int firstDot = defaultSaveExt.indexOf(QLatin1Char('.')); -+ if (firstDot != -1) { -+ defaultSaveExt.remove(0, firstDot + 1); -+ } else { -+ defaultSaveExt.clear(); -+ } -+ }*/ -+ -+ PanelLooper *looper = new PanelLooper(); -+ looper->Run(); -+ -+ BFilePanel *savepanel = new BFilePanel(B_SAVE_PANEL,NULL,NULL,0,false,NULL,NULL,true,true); -+ savepanel->SetTarget(BMessenger(looper)); -+ if(!title.isEmpty()) { -+ savepanel->Window()->SetTitle((title.toUtf8()).data()); -+ } -+ QByteArray dirpath = initialDirectory->toUtf8(); -+ savepanel->SetPanelDirectory(dirpath.data()); -+ savepanel->SetSaveText((isel.toUtf8()).data()); -+ savepanel->Show(); -+ -+ looper->Wait(savepanel); -+ result = looper->GetFilename(); -+ -+ delete savepanel; -+ -+ looper->Lock(); -+ looper->Quit(); -+ -+ if (result.isEmpty()) -+ return result; -+ -+ fi = result; -+ *initialDirectory = fi.path(); -+/* if (selectedFilter) -+ *selectedFilter = qt_haiku_selected_filter(args.filter, selFilIdx);*/ -+ return fi.absoluteFilePath(); -+} -+ -+QStringList qt_haiku_get_open_file_names(const QFileDialogArgs &args, -+ QString *initialDirectory, -+ QString *selectedFilter) -+{ -+ QStringList result; -+ -+ QString title = args.caption; -+ QString isel = args.selection; -+ -+ if (initialDirectory && initialDirectory->left(5) == QLatin1String("file:")) -+ initialDirectory->remove(0, 5); -+ QFileInfo fi(*initialDirectory); -+ -+ if (initialDirectory && !fi.isDir()) { -+ *initialDirectory = fi.absolutePath(); -+ if (isel.isEmpty()) -+ isel = fi.fileName(); -+ } -+ -+ if (!fi.exists() || *initialDirectory==QDir::homePath()) -+ *initialDirectory = QDesktopServices::storageLocation(QDesktopServices::HomeLocation); -+ -+ int selFilIdx = 0; -+ -+/* int idx = 0; -+ if (selectedFilter) { -+ QStringList filterLst = qt_haiku_make_filters_list(args.filter); -+ idx = filterLst.indexOf(*selectedFilter); -+ }*/ -+ -+ PanelLooper *looper = new PanelLooper(); -+ looper->Run(); -+ -+ BFilePanel *openpanel = new BFilePanel(B_OPEN_PANEL,NULL,NULL,0,true,NULL,NULL,true,true); -+ openpanel->SetTarget(BMessenger(looper)); -+ if(!title.isEmpty()) { -+ openpanel->Window()->SetTitle((title.toUtf8()).data()); -+ } -+ QByteArray dirpath = initialDirectory->toUtf8(); -+ openpanel->SetPanelDirectory(dirpath.data()); -+ openpanel->Show(); -+ -+ looper->Wait(openpanel); -+ result = looper->GetFilenames(); -+ -+ delete openpanel; -+ -+ looper->Lock(); -+ looper->Quit(); -+ -+ if (!result.isEmpty()) { -+ *initialDirectory = fi.path(); // only save the path if there is a result -+ } -+ return result; -+} -+ -+class DirectoryFilter : public BRefFilter { -+public: -+ DirectoryFilter() {}; -+ virtual bool Filter(const entry_ref* ref, -+ BNode* node, struct stat_beos* st, const char* filetype) -+ { -+ return node->IsDirectory(); -+ } -+}; -+ -+ -+QString qt_haiku_get_existing_directory(const QFileDialogArgs &args) -+{ -+ QString initDir = QDir::toNativeSeparators(args.directory); -+ QString result; -+ -+ QString title = args.caption; -+ -+ PanelLooper *looper = new PanelLooper(); -+ looper->Run(); -+ -+ BFilePanel *dirpanel = new BFilePanel(B_OPEN_PANEL, NULL, NULL, B_DIRECTORY_NODE, true, NULL, NULL, true, true); -+ dirpanel->SetTarget(BMessenger(looper)); -+ dirpanel->SetButtonLabel(B_DEFAULT_BUTTON, "Select"); -+ if(!title.isEmpty()) { -+ dirpanel->Window()->SetTitle((title.toUtf8()).data()); -+ } -+ -+ BRefFilter *filter; -+ filter = new DirectoryFilter; -+ dirpanel->SetRefFilter(filter); -+ dirpanel->Show(); -+ -+ looper->Wait(dirpanel); -+ result = looper->GetFilename(); -+ -+ delete dirpanel; -+ -+ looper->Lock(); -+ looper->Quit(); -+ -+ return result; -+} -+ -+ -+QT_END_NAMESPACE -+ -+#endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/gui.pro qt-everywhere-opensource-src-4.7.3_haiku/src/gui/gui.pro ---- qt-everywhere-opensource-src-4.7.3/src/gui/gui.pro 2011-03-30 05:19:06.004980736 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/gui.pro 2011-06-13 22:06:43.247726080 +0000 -@@ -5,7 +5,7 @@ DEFINES += QT_BUILD_GUI_LIB QT_NO_USIN - win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x65000000 - irix-cc*:QMAKE_CXXFLAGS += -no_prelink -ptused - --!win32:!embedded:!mac:!symbian:CONFIG += x11 -+!win32:!embedded:!mac:!symbian:!haiku:CONFIG += x11 - - unix:QMAKE_PKGCONFIG_REQUIRES = QtCore - -@@ -22,6 +22,7 @@ symbian { - include(kernel/symbian.pri) - include(s60framework/s60framework.pri) - } -+haiku:include(kernel/haiku.pri) - - #modules - include(animation/animation.pri) -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/image.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/image.pri ---- qt-everywhere-opensource-src-4.7.3/src/gui/image/image.pri 2011-03-30 05:19:04.013893632 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/image.pri 2011-06-13 22:06:43.249561088 +0000 -@@ -71,6 +71,10 @@ else:symbian { - HEADERS += image/qpixmap_s60_p.h - SOURCES += image/qpixmap_s60.cpp - } -+else:haiku { -+ HEADERS += image/qpixmap_haiku_p.h -+ SOURCES += image/qpixmap_haiku.cpp -+} - - # Built-in image format support - HEADERS += \ -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qnativeimage.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qnativeimage.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/image/qnativeimage.cpp 2011-03-30 05:19:04.007602176 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qnativeimage.cpp 2011-06-13 22:06:43.252182528 +0000 -@@ -268,6 +268,28 @@ QImage::Format QNativeImage::systemForma - return QImage::Format_RGB32; - } - -+#elif defined(Q_WS_HAIKU) -+ -+QNativeImage::QNativeImage(int width, int height, QImage::Format -+format, bool /* isTextBuffer */, QWidget *) -+ : image(width, height, format) -+{ -+ bitmap = new BBitmap(BRect(0,0,width-1,height-1), B_RGBA32, false, true); // we use continuous for now -+ uchar *bits = (uchar*)bitmap->Bits(); -+ image = QImage(bits, width, height, format); -+} -+ -+ -+QNativeImage::~QNativeImage() -+{ -+ delete bitmap; -+ bitmap = 0; -+} -+ -+QImage::Format QNativeImage::systemFormat() -+{ -+ return QImage::Format_RGB32; -+} - - #else // other platforms... - -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qnativeimage_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qnativeimage_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/image/qnativeimage_p.h 2011-03-30 05:19:04.011010048 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qnativeimage_p.h 2011-06-13 22:06:43.254017536 +0000 -@@ -64,6 +64,9 @@ - #elif defined(Q_WS_MAC) - #include - -+#elif defined(Q_WS_HAIKU) -+#include -+ - #endif - - QT_BEGIN_NAMESPACE -@@ -95,6 +98,10 @@ public: - - #elif defined(Q_WS_MAC) - CGContextRef cg; -+ -+#elif defined(Q_WS_HAIKU) -+ BBitmap* bitmap; -+ - #endif - - private: -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap.cpp 2011-03-30 05:19:04.009961472 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap.cpp 2011-06-13 22:06:43.257425408 +0000 -@@ -71,6 +71,10 @@ - # include "private/qpixmap_mac_p.h" - #endif - -+#ifdef Q_WS_HAIKU -+# include "private/qpixmap_haiku_p.h" -+#endif -+ - #if defined(Q_WS_X11) - # include "qx11info_x11.h" - # include -@@ -1960,6 +1964,8 @@ int QPixmap::defaultDepth() - return 32; // XXX - #elif defined(Q_WS_MAC) - return 32; -+#elif defined(Q_WS_HAIKU) -+ return 32; - #elif defined(Q_OS_SYMBIAN) - return S60->screenDepth; - #endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap.h 2011-03-30 05:19:04.009437184 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap.h 2011-06-13 22:06:43.259784704 +0000 -@@ -57,6 +57,10 @@ class CFbsBitmap; - class RSgImage; - #endif - -+#if defined(Q_OS_HAIKU) -+class BBitmap; -+#endif -+ - QT_BEGIN_NAMESPACE - - QT_MODULE(Gui) -@@ -164,6 +168,11 @@ public: - static QPixmap fromMacCGImageRef(CGImageRef image); - #endif - -+#if defined(Q_OS_HAIKU) -+ BBitmap *toHaikuBitmap() const; -+ static QPixmap fromHaikuBitmap(BBitmap *); -+#endif -+ - #if defined(Q_OS_SYMBIAN) - CFbsBitmap *toSymbianCFbsBitmap() const; - static QPixmap fromSymbianCFbsBitmap(CFbsBitmap *bitmap); -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap_haiku.cpp 2011-06-13 22:06:43.261619712 +0000 -@@ -0,0 +1,126 @@ -+#include "qpixmap.h" -+ -+#include "qpixmap_raster_p.h" -+ -+#include "qbitmap.h" -+#include "qimage.h" -+#include "qwidget.h" -+#include "qpainter.h" -+#include "qdatastream.h" -+#include "qbuffer.h" -+#include "qapplication.h" -+#include "qevent.h" -+#include "qfile.h" -+#include "qfileinfo.h" -+#include "qdatetime.h" -+#include "qpixmapcache.h" -+#include "qimagereader.h" -+#include "qimagewriter.h" -+#include "qdebug.h" -+ -+#include -+ -+#include -+#include -+#include -+#include -+ -+BBitmap * -+QPixmap::toHaikuBitmap() const -+{ -+ BBitmap *bitmap = NULL; -+ -+ if (isNull()) -+ return 0; -+ -+ if (data->classId() == QPixmapData::RasterClass) { -+ QRasterPixmapData* d = static_cast(data.data()); -+ int w = d->image.width(); -+ int h = d->image.height(); -+ -+ const QImage image = d->image.convertToFormat(QImage::Format_ARGB32); -+ int bytes_per_line = w * 4; -+ -+ bitmap = new BBitmap(BRect(0,0,w-1,h-1), B_RGBA32); -+ uchar *pixels = (uchar *)bitmap->Bits(); -+ -+ for (int y=0; yfromImage(toImage(), Qt::AutoColor); -+ return QPixmap(data).toHaikuBitmap(); -+ } -+ return bitmap; -+} -+ -+QPixmap -+QPixmap::fromHaikuBitmap(BBitmap *bmp) -+{ -+ if(!bmp) -+ return QPixmap(); -+ -+ int w = bmp->Bounds().IntegerWidth() + 1; -+ int h = bmp->Bounds().IntegerHeight() + 1; -+ -+ QImage image(w,h,QImage::Format_ARGB32); -+ -+ int bytes_per_line = w * 4; -+ uchar *pixels = (uchar *)bmp->Bits(); -+ -+ for (int y=0; yColorSpace()) { -+ case B_GRAY1: -+ format = QImage::Format_Mono; -+ break; -+ case B_GRAY8: -+ case B_CMAP8: -+ format = QImage::Format_Indexed8; -+ break; -+ case B_RGB15: -+ case B_RGBA15: -+ case B_RGB16: -+ format = QImage::Format_RGB16; -+ break; -+ case B_RGB32: -+ default: -+ format = QImage::Format_RGB32; -+ break; -+ } -+ -+ QRect grabRect(x,y,w,h); -+ QImage image((uchar*)bitmap->Bits(), screen_w, screen_h, bitmap->BytesPerRow(), format); -+ image = image.copy(grabRect); -+ -+ delete bitmap; -+ -+ return QPixmap::fromImage(image); -+} -+ -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap_haiku_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap_haiku_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmap_haiku_p.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmap_haiku_p.h 2011-06-13 22:06:43.272367616 +0000 -@@ -0,0 +1,6 @@ -+#include "qpixmap.h" -+#include "qpixmapdata_p.h" -+ -+#include -+#include -+ -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmapdatafactory.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmapdatafactory.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/image/qpixmapdatafactory.cpp 2011-03-30 05:19:04.015990784 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/image/qpixmapdatafactory.cpp 2011-06-13 22:06:43.274464768 +0000 -@@ -56,6 +56,9 @@ - #ifdef Q_OS_SYMBIAN - # include - #endif -+#ifdef Q_WS_HAIKU -+# include -+#endif - - #include "private/qapplication_p.h" - #include "private/qgraphicssystem_p.h" -@@ -83,7 +86,9 @@ QPixmapData* QSimplePixmapDataFactory::c - #elif defined(Q_WS_MAC) - return new QMacPixmapData(type); - #elif defined(Q_OS_SYMBIAN) -- return new QS60PixmapData(type); -+ return new QS60PixmapData(type); -+#elif defined(Q_WS_HAIKU) -+ return new QRasterPixmapData(type); - #else - #error QSimplePixmapDataFactory::create() not implemented - #endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/itemviews/qfileiconprovider.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/itemviews/qfileiconprovider.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/itemviews/qfileiconprovider.cpp 2011-03-30 05:19:05.040894464 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/itemviews/qfileiconprovider.cpp 2011-06-13 22:06:43.277348352 +0000 -@@ -53,6 +53,11 @@ - # include - #elif defined(Q_WS_MAC) - # include -+#elif defined(Q_WS_HAIKU) -+# include -+# include -+# include -+# include - #endif - - #include -@@ -98,6 +103,8 @@ public: - QIcon getWinIcon(const QFileInfo &fi) const; - #elif defined(Q_WS_MAC) - QIcon getMacIcon(const QFileInfo &fi) const; -+#elif defined(Q_WS_HAIKU) -+ QIcon getHaikuIcon(const QFileInfo &fi) const; - #endif - QFileIconProvider *q_ptr; - const QString homePath; -@@ -389,6 +396,33 @@ QIcon QFileIconProviderPrivate::getMacIc - - return retIcon; - } -+#elif defined(Q_WS_HAIKU) -+QIcon QFileIconProviderPrivate::getHaikuIcon(const QFileInfo &fi) const -+{ -+ QIcon retIcon; -+ -+ BNode node(fi.canonicalFilePath().toUtf8().constData()); -+ if (node.InitCheck() == B_OK) { -+ BNodeInfo nodeinfo(&node); -+ -+ BBitmap *hIcon = new BBitmap(BRect(0, 0, 15, 15), B_RGBA32); -+ nodeinfo.GetTrackerIcon(hIcon, B_MINI_ICON); -+ if(hIcon) { -+ QPixmap p = QPixmap::fromHaikuBitmap(hIcon); -+ retIcon.addPixmap(p); -+ delete hIcon; -+ } -+ -+ BBitmap *hIconBig = new BBitmap(BRect(0, 0, 31, 31), B_RGBA32); -+ nodeinfo.GetTrackerIcon(hIcon, B_LARGE_ICON); -+ if(hIconBig) { -+ QPixmap p = QPixmap::fromHaikuBitmap(hIconBig); -+ retIcon.addPixmap(p); -+ delete hIconBig; -+ } -+ } -+ return retIcon; -+} - #endif - - -@@ -420,6 +454,10 @@ QIcon QFileIconProvider::icon(const QFil - QIcon icon = d->getWinIcon(info); - if (!icon.isNull()) - return icon; -+#elif defined Q_WS_HAIKU -+ QIcon icon = d->getHaikuIcon(info); -+ if (!icon.isNull()) -+ return icon; - #endif - if (info.isRoot()) - #if defined (Q_WS_WIN) && !defined(Q_WS_WINCE) -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/haiku.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/haiku.pri ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/haiku.pri 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/haiku.pri 2011-06-13 22:06:43.279445504 +0000 -@@ -0,0 +1,2 @@ -+DEFINES += QT_NO_FONTCONFIG -+LIBS_PRIVATE += -lbe -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/kernel.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/kernel.pri ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/kernel.pri 2011-03-30 05:19:04.051118080 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/kernel.pri 2011-06-13 22:06:43.281018368 +0000 -@@ -262,3 +262,18 @@ wince*: { - ../corelib/kernel/qfunctions_wince.cpp \ - kernel/qguifunctions_wince.cpp - } -+ -+haiku { -+ HEADERS += kernel/qwidget_haiku.h -+ -+ SOURCES += \ -+ kernel/qapplication_haiku.cpp \ -+ kernel/qwidget_haiku.cpp \ -+ kernel/qdnd_haiku.cpp \ -+ kernel/qdesktopwidget_haiku.cpp \ -+ kernel/qclipboard_haiku.cpp \ -+ kernel/qcursor_haiku.cpp \ -+ kernel/qkeymapper_haiku.cpp \ -+ kernel/qsound_haiku.cpp \ -+ kernel/qeventdispatcher_haiku.cpp -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication.cpp 2011-03-30 05:19:04.057671680 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication.cpp 2011-06-13 22:06:43.288096256 +0000 -@@ -4760,7 +4760,7 @@ bool QApplicationPrivate::notify_helper( - Stubbed session management support - *****************************************************************************/ - #ifndef QT_NO_SESSIONMANAGER --#if defined(Q_WS_WIN) || defined(Q_WS_MAC) || defined(Q_WS_QWS) -+#if defined(Q_WS_WIN) || defined(Q_WS_MAC) || defined(Q_WS_QWS) || defined(Q_WS_HAIKU) - - #if defined(Q_OS_WINCE) - HRESULT qt_CoCreateGuid(GUID* guid) -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication_haiku.cpp 2011-06-13 22:06:43.291241984 +0000 -@@ -0,0 +1,655 @@ -+#include "qapplication_p.h" -+#include "qsessionmanager.h" -+#include "qapplication.h" -+#include "qevent.h" -+#include "qeventdispatcher_haiku_p.h" -+#include "qwidget.h" -+#include "qwidget_p.h" -+#include "private/qsystemtrayicon_p.h" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/***************************************************************************** -+ Internal variables and functions -+ *****************************************************************************/ -+static WId curWin; -+ -+// ignore the next release event if return from a modal widget -+Q_GUI_EXPORT bool qt_win_ignoreNextMouseReleaseEvent = false; -+ -+#if defined(QT_DEBUG) -+static bool appNoGrab = false; // mouse/keyboard grabbing -+#endif -+ -+static bool app_do_modal = false; // modal mode -+extern QWidgetList *qt_modal_stack; -+//extern QDesktopWidget *qt_desktopWidget; -+//static QPointer popupButtonFocus; -+ -+QPointer qt_last_mouse_receiver = 0; -+QWidget* qt_button_down = 0; -+QTextCodec * qt_input_mapper = 0; -+ -+char *qAppSignature = NULL; -+ -+bool qt_nograb() // application no-grab option -+{ -+#if defined(QT_DEBUG) -+ return appNoGrab; -+#else -+ return false; -+#endif -+} -+ -+class HQApplication : public BApplication -+{ -+public: -+ HQApplication(const char*, QApplicationPrivate *priv); -+ ~HQApplication(); -+ -+ virtual void MessageReceived(BMessage *message); -+ void ArgvReceived(int32 argc, char **argv); -+ void RefsReceived(BMessage *pmsg); -+ virtual bool QuitRequested(); -+ bool RefHandled; -+ entry_ref Ref; -+private: -+ BMessenger fTrackerMessenger; -+ QApplicationPrivate *priv_ptr; -+}; -+ -+namespace { -+static HQApplication* happ = 0; -+} -+ -+HQApplication::HQApplication(const char* signature, QApplicationPrivate *priv) -+ : BApplication(signature) -+{ -+ RefHandled = false; -+ -+ qDebug("Reimp: HQApplication::HQApplication\n"); -+ -+ if(qAppSignature) -+ free(qAppSignature); -+ qAppSignature = strdup(signature); -+ -+ priv_ptr = priv; -+} -+ -+HQApplication::~HQApplication() -+{ -+ qDebug("Reimp: HQApplication::~HQApplication\n"); -+} -+ -+void HQApplication::MessageReceived(BMessage* msg) -+{ -+ BApplication::MessageReceived(msg); -+} -+ -+void -+HQApplication::RefsReceived(BMessage *pmsg) -+{ -+ if (pmsg->HasMessenger("TrackerViewToken")) { -+ pmsg->FindMessenger("TrackerViewToken", &fTrackerMessenger); -+ } -+ -+ uint32 type; -+ int32 count; -+ status_t ret = pmsg->GetInfo("refs", &type, &count); -+ if (ret != B_OK || type != B_REF_TYPE) -+ return; -+ -+ entry_ref ref; -+ for (int32 i = 0; i < count; i++) { -+ if (pmsg->FindRef("refs", i, &ref) == B_OK) { -+ BPath p(&ref); -+ Ref = ref; -+ RefHandled = true; -+ } -+ } -+} -+ -+void -+HQApplication::ArgvReceived(int32 argc, char **argv) -+{ -+} -+ -+bool -+HQApplication::QuitRequested() { -+ QEvent quitEvent(QEvent::Quit); -+ QApplication::sendEvent(qApp, &quitEvent); -+ return true; -+} -+ -+ -+int32 AppThread(void *data) -+{ -+ HQApplication *app = (HQApplication*)data; -+ app->LockLooper(); -+ app->Run(); -+} -+ -+ -+void qt_init(QApplicationPrivate *priv, int) -+{ -+ int i; -+ qDebug("qt_init()"); -+ -+ thread_id my_thread; -+ -+ happ = new HQApplication("application/x-vnd."+QFileInfo(QApplication::applicationFilePath()).fileName().toLatin1(), priv ); -+ be_app = happ; -+ -+ QApplicationPrivate::haiku_apply_settings(); -+ -+ my_thread = spawn_thread(AppThread,"app_thread",1,(void*)happ); -+ resume_thread(my_thread); -+ -+ happ->UnlockLooper(); -+ -+ if(priv->argc==1) { -+ for(i=0;i<100;i++) { -+ if(happ->RefHandled) { -+ BPath p(&happ->Ref); -+ priv->argc = 2; -+ priv->argv[1]=strdup(p.Path()); -+ priv->argv[2]=0; -+ break; -+ } -+ snooze(1000); -+ } -+ -+ QString appDir = QCoreApplication::applicationDirPath(); -+ chdir(appDir.toUtf8()); -+ } -+} -+ -+void qt_cleanup() -+{ -+ qDebug("qt_cleanup()"); -+} -+ -+void QApplicationPrivate::_q_alertTimeOut() -+{ -+ qDebug("Unimplemented: void QApplicationPrivate::_q_alertTimeOut()\n"); -+} -+ -+QString QApplicationPrivate::appName() const -+{ -+ return QCoreApplicationPrivate::appName(); -+} -+ -+void QApplicationPrivate::createEventDispatcher() -+{ -+ Q_Q(QApplication); -+ qDebug("Reimplemented: void QApplicationPrivate::createEventDispatcher\n"); -+ if (q->type() != QApplication::Tty) -+ eventDispatcher = new QEventDispatcherHaiku(q); -+ else -+ eventDispatcher = new QEventDispatcherUNIX(q); -+} -+ -+/***************************************************************************** -+ Popup widget mechanism -+ -+ openPopup() -+ Adds a widget to the list of popup widgets -+ Arguments: -+ QWidget *widget The popup widget to be added -+ -+ closePopup() -+ Removes a widget from the list of popup widgets -+ Arguments: -+ QWidget *widget The popup widget to be removed -+ *****************************************************************************/ -+ -+ -+void QApplicationPrivate::openPopup(QWidget *popup) -+{ -+ if (!QApplicationPrivate::popupWidgets) -+ QApplicationPrivate::popupWidgets = new QWidgetList; -+ QApplicationPrivate::popupWidgets->append(popup); -+ if (!popup->isEnabled()) -+ return; -+ -+ if (QApplicationPrivate::popupWidgets->count() == 1 && !qt_nograb()) { -+ Q_ASSERT(popup->testAttribute(Qt::WA_WState_Created)); -+// setAutoCapture(popup->internalWinId()); // grab mouse/keyboard -+ } -+ // Popups are not focus-handled by the window system (the first -+ // popup grabbed the keyboard), so we have to do that manually: A -+ // new popup gets the focus -+ if (popup->focusWidget()) { -+ popup->focusWidget()->setFocus(Qt::PopupFocusReason); -+ } else if (QApplicationPrivate::popupWidgets->count() == 1) { // this was the first popup -+ if (QWidget *fw = q_func()->focusWidget()) { -+ QFocusEvent e(QEvent::FocusOut, Qt::PopupFocusReason); -+ q_func()->sendEvent(fw, &e); -+ } -+ } -+} -+ -+void QApplicationPrivate::closePopup(QWidget *popup) -+{ -+ if (!QApplicationPrivate::popupWidgets) -+ return; -+ QApplicationPrivate::popupWidgets->removeAll(popup); -+// POINT curPos; -+// GetCursorPos(&curPos); -+ -+ if (QApplicationPrivate::popupWidgets->isEmpty()) { // this was the last popup -+ delete QApplicationPrivate::popupWidgets; -+ QApplicationPrivate::popupWidgets = 0; -+// replayPopupMouseEvent = (!popup->geometry().contains(QPoint(curPos.x, curPos.y)) -+// && !popup->testAttribute(Qt::WA_NoMouseReplay)); -+ if (!popup->isEnabled()) -+ return; -+// if (!qt_nograb()) // grabbing not disabled -+// releaseAutoCapture(); -+ QWidget *fw = QApplicationPrivate::active_window ? QApplicationPrivate::active_window->focusWidget() -+ : q_func()->focusWidget(); -+ if (fw) { -+ if (fw != q_func()->focusWidget()) { -+ fw->setFocus(Qt::PopupFocusReason); -+ } else { -+ QFocusEvent e(QEvent::FocusIn, Qt::PopupFocusReason); -+ q_func()->sendEvent(fw, &e); -+ } -+ } -+ } else { -+ // Popups are not focus-handled by the window system (the -+ // first popup grabbed the keyboard), so we have to do that -+ // manually: A popup was closed, so the previous popup gets -+ // the focus. -+ QWidget* aw = QApplicationPrivate::popupWidgets->last(); -+ if (QApplicationPrivate::popupWidgets->count() == 1) { -+ Q_ASSERT(aw->testAttribute(Qt::WA_WState_Created)); -+// setAutoCapture(aw->internalWinId()); -+ } -+ if (QWidget *fw = aw->focusWidget()) -+ fw->setFocus(Qt::PopupFocusReason); -+ } -+} -+ -+void QApplicationPrivate::initializeWidgetPaletteHash() -+{ -+ qDebug("Unimplemented: QApplicationPrivate::initializeWidgetPaletteHash\n"); -+} -+ -+/*! \internal -+ apply the settings to the application -+*/ -+bool QApplicationPrivate::haiku_apply_settings() -+{ -+ QSettings settings(QSettings::UserScope, QLatin1String("Trolltech")); -+ -+ settings.beginGroup(QLatin1String("Qt")); -+ -+ /* -+ Qt settings. This is now they are written into the datastream. -+ -+ Palette / * - QPalette -+ font - QFont -+ libraryPath - QStringList -+ style - QString -+ doubleClickInterval - int -+ keyboardInputInterval - int -+ cursorFlashTime - int -+ wheelScrollLines - int -+ colorSpec - QString -+ defaultCodec - QString -+ globalStrut/width - int -+ globalStrut/height - int -+ GUIEffects - QStringList -+ Font Substitutions/ * - QStringList -+ Font Substitutions/... - QStringList -+ */ -+ -+ QStringList strlist; -+ int i; -+ QPalette pal(Qt::black); -+ int groupCount = 0; -+ strlist = settings.value(QLatin1String("Palette/active")).toStringList(); -+ if (!strlist.isEmpty()) { -+ ++groupCount; -+ for (i = 0; i < qMin(strlist.count(), int(QPalette::NColorRoles)); i++) -+ pal.setColor(QPalette::Active, (QPalette::ColorRole) i, -+ QColor(strlist[i])); -+ } -+ strlist = settings.value(QLatin1String("Palette/inactive")).toStringList(); -+ if (!strlist.isEmpty()) { -+ ++groupCount; -+ for (i = 0; i < qMin(strlist.count(), int(QPalette::NColorRoles)); i++) -+ pal.setColor(QPalette::Inactive, (QPalette::ColorRole) i, -+ QColor(strlist[i])); -+ } -+ strlist = settings.value(QLatin1String("Palette/disabled")).toStringList(); -+ if (!strlist.isEmpty()) { -+ ++groupCount; -+ for (i = 0; i < qMin(strlist.count(), int(QPalette::NColorRoles)); i++) -+ pal.setColor(QPalette::Disabled, (QPalette::ColorRole) i, -+ QColor(strlist[i])); -+ } -+ -+/* if (!appFont) { -+ QFont font(QApplication::font()); -+ QString fontDescription; -+ if (fontDescription.isEmpty()) -+ fontDescription = settings.value(QLatin1String("font")).toString(); -+ if (!fontDescription .isEmpty()) { -+ font.fromString(fontDescription ); -+ QApplicationPrivate::setSystemFont(font); -+ } -+ }*/ -+ -+ // read new QStyle -+ QString stylename = settings.value(QLatin1String("style")).toString(); -+ if (stylename.isEmpty() && QApplicationPrivate::styleOverride.isNull()) { -+ QStringList availableStyles = QStyleFactory::keys(); -+ } -+ -+ static QString currentStyleName = stylename; -+ if (QCoreApplication::startingUp()) { -+ if (!stylename.isEmpty() && QApplicationPrivate::styleOverride.isNull()) -+ QApplicationPrivate::styleOverride = stylename; -+ } else { -+ if (currentStyleName != stylename) { -+ currentStyleName = stylename; -+ QApplication::setStyle(stylename); -+ } -+ } -+ -+ int num = -+ settings.value(QLatin1String("doubleClickInterval"), -+ QApplication::doubleClickInterval()).toInt(); -+ QApplication::setDoubleClickInterval(num); -+ -+ num = -+ settings.value(QLatin1String("cursorFlashTime"), -+ QApplication::cursorFlashTime()).toInt(); -+ QApplication::setCursorFlashTime(num); -+ -+ num = -+ settings.value(QLatin1String("wheelScrollLines"), -+ QApplication::wheelScrollLines()).toInt(); -+ QApplication::setWheelScrollLines(num); -+ -+ QString colorspec = settings.value(QLatin1String("colorSpec"), -+ QVariant(QLatin1String("default"))).toString(); -+ if (colorspec == QLatin1String("normal")) -+ QApplication::setColorSpec(QApplication::NormalColor); -+ else if (colorspec == QLatin1String("custom")) -+ QApplication::setColorSpec(QApplication::CustomColor); -+ else if (colorspec == QLatin1String("many")) -+ QApplication::setColorSpec(QApplication::ManyColor); -+ else if (colorspec != QLatin1String("default")) -+ colorspec = QLatin1String("default"); -+ -+/* QString defaultcodec = settings.value(QLatin1String("defaultCodec"), -+ QVariant(QLatin1String("none"))).toString(); -+ if (defaultcodec != QLatin1String("none")) { -+ QTextCodec *codec = QTextCodec::codecForName(defaultcodec.toLatin1()); -+ if (codec) -+ QTextCodec::setCodecForTr(codec); -+ }*/ -+ QTextCodec *codec = QTextCodec::codecForName("UTF-8"); -+ if (codec) { -+ QTextCodec::setCodecForLocale(codec); -+ } -+ qt_input_mapper = QTextCodec::codecForName("UTF-8"); -+ -+ -+ int w = settings.value(QLatin1String("globalStrut/width")).toInt(); -+ int h = settings.value(QLatin1String("globalStrut/height")).toInt(); -+ QSize strut(w, h); -+ if (strut.isValid()) -+ QApplication::setGlobalStrut(strut); -+ -+ QStringList effects = settings.value(QLatin1String("GUIEffects")).toStringList(); -+ QApplication::setEffectEnabled(Qt::UI_General, -+ effects.contains(QLatin1String("general"))); -+ QApplication::setEffectEnabled(Qt::UI_AnimateMenu, -+ effects.contains(QLatin1String("animatemenu"))); -+ QApplication::setEffectEnabled(Qt::UI_FadeMenu, -+ effects.contains(QLatin1String("fademenu"))); -+ QApplication::setEffectEnabled(Qt::UI_AnimateCombo, -+ effects.contains(QLatin1String("animatecombo"))); -+ QApplication::setEffectEnabled(Qt::UI_AnimateTooltip, -+ effects.contains(QLatin1String("animatetooltip"))); -+ QApplication::setEffectEnabled(Qt::UI_FadeTooltip, -+ effects.contains(QLatin1String("fadetooltip"))); -+ QApplication::setEffectEnabled(Qt::UI_AnimateToolBox, -+ effects.contains(QLatin1String("animatetoolbox"))); -+ -+ settings.beginGroup(QLatin1String("Font Substitutions")); -+ QStringList fontsubs = settings.childKeys(); -+ if (!fontsubs.isEmpty()) { -+ QStringList::Iterator it = fontsubs.begin(); -+ for (; it != fontsubs.end(); ++it) { -+ QString fam = *it; -+ QStringList subs = settings.value(fam).toStringList(); -+ QFont::insertSubstitutions(fam, subs); -+ } -+ } -+ settings.endGroup(); -+ -+ settings.endGroup(); // Qt -+ -+ return true; -+} -+ -+ -+void QApplicationPrivate::haiku_initialize_style() -+{ -+ if (QApplicationPrivate::app_style) -+ return; -+ -+ QApplicationPrivate::app_style = QStyleFactory::create(QLatin1String("haiku")); -+} -+ -+/***************************************************************************** -+ Modal widgets; We have implemented our own modal widget mechanism -+ to get total control. -+ A modal widget without a parent becomes application-modal. -+ A modal widget with a parent becomes modal to its parent and grandparents.. -+ -+ QApplicationPrivate::enterModal() -+ Enters modal state -+ Arguments: -+ QWidget *widget A modal widget -+ -+ QApplicationPrivate::leaveModal() -+ Leaves modal state for a widget -+ Arguments: -+ QWidget *widget A modal widget -+ *****************************************************************************/ -+ -+bool QApplicationPrivate::modalState() -+{ -+ //qDebug()<<"Unimplemented: QApplicationPrivate::modalState():"<insert(0, widget); -+ app_do_modal = true; -+ curWin = 0; -+ qt_last_mouse_receiver = 0; -+ qt_win_ignoreNextMouseReleaseEvent = false; -+} -+ -+void QApplicationPrivate::leaveModal_sys(QWidget *widget) -+{ -+ //qDebug()<<"Unimplemented: QApplicationPrivate::leaveModal_sys(). Widget:"<removeAll(widget)) { -+ if (qt_modal_stack->isEmpty()) { -+ delete qt_modal_stack; -+ qt_modal_stack = 0; -+ QPoint p(QCursor::pos()); -+ app_do_modal = false; // necessary, we may get recursively into qt_try_modal below -+ QWidget* w = QApplication::widgetAt(p.x(), p.y()); -+ QWidget *leave = qt_last_mouse_receiver; -+ if (!leave) -+ leave = QWidget::find((WId)curWin); -+ if (QWidget *grabber = QWidget::mouseGrabber()) { -+ w = grabber; -+ if (leave == w) -+ leave = 0; -+ } -+ QApplicationPrivate::dispatchEnterLeave(w, leave); // send synthetic enter event -+ curWin = w ? w->effectiveWinId() : 0; -+ qt_last_mouse_receiver = w; -+ } -+ qt_win_ignoreNextMouseReleaseEvent = true; -+ } -+ app_do_modal = qt_modal_stack != 0; -+} -+ -+ -+/***************************************************************************** -+ Platform specific QApplication members -+ *****************************************************************************/ -+ -+#ifdef QT3_SUPPORT -+void QApplication::setMainWidget(QWidget *mainWidget) -+{ -+#ifndef QT_NO_DEBUG -+ if (mainWidget && mainWidget->parentWidget() && mainWidget->isWindow()) -+ qWarning("QApplication::setMainWidget: New main widget (%s/%s) " -+ "has a parent", -+ mainWidget->metaObject()->className(), mainWidget->objectName().toLocal8Bit().constData()); -+#endif -+ if (mainWidget) -+ mainWidget->d_func()->createWinId(); -+ QApplicationPrivate::main_widget = mainWidget; -+} -+#endif -+ -+void QApplication::setDoubleClickInterval(int ms) -+{ -+// qDebug("Reimplemented: QApplicationPrivate::setDoubleClickInterval - %d\n", ms); -+#if 0 //change system dblclick interval currently disabled -+ QApplicationPrivate::mouse_double_click_time = ms; -+ bigtime_t interval = ms*1000; -+ set_click_speed(interval); -+#endif -+} -+ -+int QApplication::doubleClickInterval() -+{ -+ bigtime_t interval; -+ get_click_speed(&interval); -+ -+ QApplicationPrivate::mouse_double_click_time = (int)(interval/1000); -+ -+ return QApplicationPrivate::mouse_double_click_time; -+} -+ -+void QApplication::setKeyboardInputInterval(int ms) -+{ -+ QApplicationPrivate::keyboard_input_time = ms; -+} -+ -+int QApplication::keyboardInputInterval() -+{ -+ // FIXME: get from the system -+ return QApplicationPrivate::keyboard_input_time; -+} -+ -+void QApplication::setWheelScrollLines(int n) -+{ -+ QApplicationPrivate::wheel_scroll_lines = n; -+} -+ -+int QApplication::wheelScrollLines() -+{ -+ return QApplicationPrivate::wheel_scroll_lines; -+} -+ -+void QApplication::setOverrideCursor(const QCursor &cursor) -+{ -+ Q_UNUSED(cursor); -+ qDebug("Unimplemented: QApplication::setOverrideCursor\n"); -+} -+ -+void QApplication::restoreOverrideCursor() -+{ -+ qDebug("Unimplemented: QApplication::restoreOverrideCursor\n"); -+} -+ -+void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable) -+{ -+ Q_UNUSED(effect); -+ Q_UNUSED(enable); -+// qDebug("Unimplemented: QApplication::setEffectEnabled\n"); -+} -+ -+bool QApplication::isEffectEnabled(Qt::UIEffect effect) -+{ -+ Q_UNUSED(effect); -+// qDebug("Unimplemented: QApplication::isEffectEnabled\n"); -+ return false; -+} -+ -+void QApplication::setCursorFlashTime(int msecs) -+{ -+ QApplicationPrivate::cursor_flash_time = msecs; -+} -+ -+int QApplication::cursorFlashTime() -+{ -+ return QApplicationPrivate::cursor_flash_time; -+} -+ -+QWidget *QApplication::topLevelAt(const QPoint &point) -+{ -+ QWidget *found = 0; -+ int lowestZ = INT_MAX; -+ QWidgetList list = QApplication::topLevelWidgets(); -+ for (int i = 0; i < list.count(); ++i) { -+ QWidget *widget = list.at(i); -+ if (widget->isVisible() && !(widget->windowType() == Qt::Desktop)) { -+ if (widget->geometry().adjusted(0,0,1,1).contains(point)) { -+ found = widget; //TODO: check for z-order needed! -+ if(widget->nativeView()->Window()->IsActive()) -+ break; -+ } -+ } -+ } -+ return found; -+} -+ -+void QApplication::beep() -+{ -+} -+ -+void QApplication::alert(QWidget *widget, int duration) -+{ -+} -+ -+void QApplicationPrivate::initializeMultitouch_sys() -+{ -+} -+ -+void QApplicationPrivate::cleanupMultitouch_sys() -+{ -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qapplication_p.h 2011-03-30 05:19:04.050331648 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qapplication_p.h 2011-06-13 22:06:43.293339136 +0000 -@@ -302,6 +302,8 @@ public: - #elif defined(Q_WS_QWS) - static bool qws_apply_settings(); - static QWidget *findWidget(const QObjectList&, const QPoint &, bool rec); -+#elif defined(Q_WS_HAIKU) -+ static bool haiku_apply_settings(); - #endif - static bool quitOnLastWindowClosed; - static void emitLastWindowClosed(); -@@ -349,6 +351,10 @@ public: - static void x11_initialize_style(); - #endif - -+#if defined(Q_WS_HAIKU) -+ static void haiku_initialize_style(); -+#endif -+ - enum KeyPlatform { - KB_Win = 1, - KB_Mac = 2, -@@ -499,7 +505,7 @@ public: - static Qt::NavigationMode navigationMode; - #endif - --#if defined(Q_WS_MAC) || defined(Q_WS_X11) -+#if defined(Q_WS_MAC) || defined(Q_WS_X11) || defined(Q_WS_HAIKU) - void _q_alertTimeOut(); - QHash alertTimerHash; - #endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qclipboard_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qclipboard_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qclipboard_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qclipboard_haiku.cpp 2011-06-13 22:06:43.295174144 +0000 -@@ -0,0 +1,105 @@ -+#include "qplatformdefs.h" -+#include "qclipboard.h" -+#include "qdebug.h" -+#include "qtextcodec.h" -+#include "qclipboard_p.h" -+#include "qstringlist.h" -+#include -+ -+#include -+#include -+ -+bool QClipboard::event(QEvent *e) -+{ -+ return true; -+} -+ -+void QClipboard::connectNotify(const char *) -+{ } -+ -+void QClipboard::ownerDestroyed() -+{ } -+ -+const QMimeData *QClipboard::mimeData(Mode mode) const -+{ -+ extern QTextCodec *qt_input_mapper; // from qapplication_haiku.cpp -+ -+ QMimeData *md = new QMimeData(); -+ if(mode == Clipboard) { -+ BMessage* clip = (BMessage *)NULL; -+ if (be_clipboard->Lock()) { -+ if( clip = be_clipboard->Data()) { -+ BMessage *msg = (BMessage*)(be_clipboard->Data()); -+ -+ char *name; -+ uint32 type; -+ int32 count; -+ -+ for ( int i = 0; msg->GetInfo(B_MIME_TYPE, i, &name, &type, &count) == B_OK; i++ ) { -+ const void *data; -+ int32 dataLen = 0; -+ qDebug() << "mimeData " << name; -+ status_t stat = msg->FindData(name,B_MIME_TYPE,&data,&dataLen); -+ if(dataLen && stat==B_OK) { -+ QString mime(name); -+ if(mime=="text/plain") { -+ QString text((const char*)data); -+ if (qt_input_mapper) -+ text = qt_input_mapper->toUnicode((const char*)data, dataLen, 0); -+ md->setText(text); -+ } else if(mime=="text/html") { -+ QString html((const char*)data); -+ if (qt_input_mapper) -+ html = qt_input_mapper->toUnicode((const char*)data, dataLen, 0); -+ md->setHtml(html); -+ } else { -+ QByteArray clip_data((const char*)data, dataLen); -+ md->setData(mime,clip_data); -+ } -+ -+ } -+ } -+ be_clipboard->Unlock(); -+ } -+ } -+ } -+ return md; -+} -+ -+void QClipboard::setMimeData(QMimeData *src, Mode mode) -+{ -+ if(mode != Clipboard) -+ return; -+ if (be_clipboard->Lock()) { -+ be_clipboard->Clear(); -+ if (src){ -+ BMessage* clip = (BMessage *)NULL; -+ if( clip = be_clipboard->Data()) { -+ QStringList formats = src->formats(); -+ for(int f = 0; f < formats.size(); ++f) { -+ QString mimeType = formats.at(f); -+ qDebug() << "setMimeData " << mimeType; -+ clip->AddData(mimeType.toUtf8(), B_MIME_TYPE, src->data(mimeType).data(), src->data(mimeType).count()); -+ } -+ } -+ } -+ be_clipboard->Commit(); -+ be_clipboard->Unlock(); -+ } -+} -+ -+void QClipboard::clear(Mode mode) -+{ -+ setMimeData(0, mode); -+} -+ -+bool QClipboard::supportsMode(QClipboard::Mode mode) const -+{ -+ return (mode == Clipboard); -+} -+ -+bool QClipboard::ownsMode(QClipboard::Mode) const -+{ -+ fprintf(stderr, "Unimplemented: QClipboard::ownsMode\n"); -+ return false; -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qcursor.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qcursor.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qcursor.h 2011-03-30 05:19:04.046399488 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qcursor.h 2011-06-13 22:06:43.297271296 +0000 -@@ -76,6 +76,10 @@ class QCursorData; - class QBitmap; - class QPixmap; - -+#if defined(Q_WS_HAIKU) -+class BCursor; -+#endif -+ - #if defined(Q_WS_MAC) - void qt_mac_set_cursor(const QCursor *c, const QPoint &p); - #endif -@@ -130,6 +134,8 @@ public: - int handle() const; - #elif defined(Q_OS_SYMBIAN) - Qt::HANDLE handle() const; -+#elif defined(Q_WS_HAIKU) -+ BCursor *handle() const; - #endif - #endif - -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qcursor_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qcursor_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qcursor_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qcursor_haiku.cpp 2011-06-13 22:06:43.299630592 +0000 -@@ -0,0 +1,93 @@ -+#include "qcursor.h" -+#include "qcursor_p.h" -+ -+#include -+#include -+ -+#include -+ -+int haiku_global_mouse_x = 0; -+int haiku_global_mouse_y = 0; -+ -+BCursor *HaikuCursorCache[32]={NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, -+ NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}; -+ -+int CursorMapList[]={ Qt::ArrowCursor, B_CURSOR_ID_SYSTEM_DEFAULT, -+ Qt::UpArrowCursor, B_CURSOR_ID_RESIZE_NORTH, -+ Qt::CrossCursor, B_CURSOR_ID_CROSS_HAIR, -+ Qt::WaitCursor, B_CURSOR_ID_PROGRESS, -+ Qt::IBeamCursor, B_CURSOR_ID_I_BEAM, -+ Qt::SizeVerCursor, B_CURSOR_ID_RESIZE_NORTH_SOUTH, -+ Qt::SizeHorCursor, B_CURSOR_ID_RESIZE_EAST_WEST, -+ Qt::SizeBDiagCursor, B_CURSOR_ID_RESIZE_NORTH_EAST_SOUTH_WEST, -+ Qt::SizeFDiagCursor, B_CURSOR_ID_RESIZE_NORTH_WEST_SOUTH_EAST, -+ Qt::SizeAllCursor, B_CURSOR_ID_MOVE, -+ Qt::BlankCursor, B_CURSOR_ID_NO_CURSOR, -+ Qt::SplitVCursor, B_CURSOR_ID_RESIZE_NORTH_SOUTH, -+ Qt::SplitHCursor, B_CURSOR_ID_RESIZE_EAST_WEST, -+ Qt::PointingHandCursor, B_CURSOR_ID_FOLLOW_LINK, -+ Qt::ForbiddenCursor, B_CURSOR_ID_NOT_ALLOWED, -+ Qt::OpenHandCursor, B_CURSOR_ID_GRAB, -+ Qt::ClosedHandCursor, B_CURSOR_ID_GRABBING, -+ Qt::WhatsThisCursor, B_CURSOR_ID_HELP, -+ Qt::BusyCursor, B_CURSOR_ID_PROGRESS -+}; -+ -+ -+extern QCursorData *qt_cursorTable[Qt::LastCursor + 1]; // qcursor.cpp -+ -+QPoint QCursor::pos() -+{ -+ return QPoint(haiku_global_mouse_x,haiku_global_mouse_y); -+} -+ -+void QCursor::setPos(int x, int y) -+{ -+// haiku_global_mouse_x = x; -+// haiku_global_mouse_y = y; -+} -+ -+BCursor *QCursor::handle() const -+{ -+ int i; -+ -+ if (!QCursorData::initialized) -+ QCursorData::initialize(); -+ -+ for(i=0;icshape) { -+ if(HaikuCursorCache[CursorMapList[i+1]]) -+ return HaikuCursorCache[CursorMapList[i+1]]; -+ } -+ } -+ -+ return (BCursor*)B_CURSOR_SYSTEM_DEFAULT; -+} -+ -+QCursorData::QCursorData(Qt::CursorShape s) -+ : cshape(s), bm(0), bmm(0), hx(0), hy(0) -+{ -+ int i; -+ for(i=0;iref.ref(); -+ return c; -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qdesktopwidget_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qdesktopwidget_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qdesktopwidget_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qdesktopwidget_haiku.cpp 2011-06-13 22:06:43.301465600 +0000 -@@ -0,0 +1,75 @@ -+#include "qdesktopwidget.h" -+#include "interface/Screen.h" -+ -+ -+#include -+ -+QDesktopWidget::QDesktopWidget() -+ : QWidget(0, Qt::Desktop) -+{ -+ //fprintf(stderr, "Unimplemented: QDesktopWidget::QDesktopWidget\n"); -+} -+ -+QDesktopWidget::~QDesktopWidget() -+{ -+ //fprintf(stderr, "Unimplemented: QDesktopWidget::~QDesktopWidget\n"); -+} -+ -+void -+QDesktopWidget::resizeEvent(QResizeEvent*) -+{ -+ fprintf(stderr, "Unimplemented: QDesktopWidget::resizeEvent\n"); -+} -+ -+const QRect QDesktopWidget::availableGeometry(int screen) const -+{ -+ BScreen bscreen(B_MAIN_SCREEN_ID); -+ BRect nsg = bscreen.Frame(); -+ return QRect(nsg.left,nsg.top,nsg.right,nsg.bottom); -+} -+ -+const QRect QDesktopWidget::screenGeometry(int screen) const -+{ -+ BScreen bscreen(B_MAIN_SCREEN_ID); -+ BRect nsg = bscreen.Frame(); -+ return QRect(nsg.left,nsg.top,nsg.right,nsg.bottom); -+} -+ -+int QDesktopWidget::screenNumber(const QWidget *widget) const -+{ -+ Q_UNUSED(widget); -+ //fprintf(stderr, "Reimplemented: QDesktopWidget::screenNumber(widget) \n"); -+ return 0; -+} -+ -+int QDesktopWidget::screenNumber(const QPoint &point) const -+{ -+ Q_UNUSED(point); -+ //fprintf(stderr, "Reimplemented: QDesktopWidget::screenNumber\n"); -+ return 0; -+} -+ -+bool QDesktopWidget::isVirtualDesktop() const -+{ -+ //fprintf(stderr, "Unimplemented: QDesktopWidget::isVirtualDesktop\n"); -+ return true; -+} -+ -+int QDesktopWidget::primaryScreen() const -+{ -+ //fprintf(stderr, "Unimplemented: QDesktopWidget::primaryScreen\n"); -+ return 0; -+} -+ -+int QDesktopWidget::numScreens() const -+{ -+ //fprintf(stderr, "Unimplemented: QDesktopWidget::numScreens\n"); -+ return 1; -+} -+ -+QWidget *QDesktopWidget::screen(int /* screen */) -+{ -+ //fprintf(stderr, "Unimplemented: QDesktopWidget::screen\n"); -+ // It seems that a Qt::WType_Desktop cannot be moved? -+ return this; -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qdnd_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qdnd_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qdnd_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qdnd_haiku.cpp 2011-06-13 22:06:43.304349184 +0000 -@@ -0,0 +1,274 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -+** All rights reserved. -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** No Commercial Usage -+** This file contains pre-release code and may not be distributed. -+** You may use this file in accordance with the terms and conditions -+** contained in the Technology Preview License Agreement accompanying -+** this package. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain additional -+** rights. These rights are described in the Nokia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** If you have questions regarding the use of this file, please contact -+** Nokia at qt-info@nokia.com. -+** -+** -+** -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include "qapplication.h" -+ -+#ifndef QT_NO_DRAGANDDROP -+ -+#include "qdebug.h" -+ -+#include "qwidget.h" -+#include "qdatetime.h" -+#include "qbitmap.h" -+#include "qcursor.h" -+#include "qevent.h" -+#include "qpainter.h" -+#include "qdnd_p.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+static Qt::DropAction global_accepted_action = Qt::MoveAction; -+static Qt::DropActions possible_actions = Qt::IgnoreAction; -+ -+static QDrag *drag_object; -+static bool qt_haiku_dnd_dragging = false; -+ -+ -+static Qt::KeyboardModifiers oldstate; -+ -+void QDragManager::updatePixmap() { } -+void QDragManager::timerEvent(QTimerEvent *) { } -+void QDragManager::move(const QPoint&) { } -+void QDragManager::updateCursor() { } -+ -+bool QDragManager::eventFilter(QObject *o, QEvent *e) -+{ -+ if (beingCancelled) { -+ return false; -+ } -+ if (!o->isWidgetType()) -+ return false; -+ -+ switch(e->type()) { -+ case QEvent::MouseButtonPress: -+ { -+ } -+ case QEvent::MouseMove: -+ { -+ if (!object) { //#### this should not happen -+ qWarning("QDragManager::eventFilter: No object"); -+ return true; -+ } -+ QDragManager *manager = QDragManager::self(); -+ QMimeData *dropData = manager->object ? manager->dragPrivate()->data : manager->dropData; -+ if (manager->object) -+ possible_actions = manager->dragPrivate()->possible_actions; -+ else -+ possible_actions = Qt::IgnoreAction; -+ -+ QMouseEvent *me = (QMouseEvent *)e; -+ -+ if (me->buttons()) { -+ Qt::DropAction prevAction = global_accepted_action; -+ QWidget *cw = QApplication::widgetAt(me->globalPos()); -+ // map the Coords relative to the window. -+ if (!cw) -+ return true; -+ -+ while (cw && !cw->acceptDrops() && !cw->isWindow()) -+ cw = cw->parentWidget(); -+ -+ bool oldWillDrop = willDrop; -+ if (object->target() != cw) { -+ if (object->target()) { -+ QDragLeaveEvent dle; -+ QApplication::sendEvent(object->target(), &dle); -+ willDrop = false; -+ global_accepted_action = Qt::IgnoreAction; -+ if (oldWillDrop != willDrop) -+ updateCursor(); -+ object->d_func()->target = 0; -+ } -+ if (cw && cw->acceptDrops()) { -+ object->d_func()->target = cw; -+ QDragEnterEvent dee(cw->mapFromGlobal(me->globalPos()), possible_actions, dropData, -+ me->buttons(), me->modifiers()); -+ QApplication::sendEvent(object->target(), &dee); -+ willDrop = dee.isAccepted() && dee.dropAction() != Qt::IgnoreAction; -+ global_accepted_action = willDrop ? dee.dropAction() : Qt::IgnoreAction; -+ if (oldWillDrop != willDrop) -+ updateCursor(); -+ } -+ } else if (cw) { -+ QDragMoveEvent dme(cw->mapFromGlobal(me->globalPos()), possible_actions, dropData, -+ me->buttons(), me->modifiers()); -+ if (global_accepted_action != Qt::IgnoreAction) { -+ dme.setDropAction(global_accepted_action); -+ dme.accept(); -+ } -+ QApplication::sendEvent(cw, &dme); -+ willDrop = dme.isAccepted(); -+ global_accepted_action = willDrop ? dme.dropAction() : Qt::IgnoreAction; -+ if (oldWillDrop != willDrop) { -+ updatePixmap(); -+ updateCursor(); -+ } -+ } -+ if (global_accepted_action != prevAction) -+ emitActionChanged(global_accepted_action); -+ } -+ return true; // Eat all mouse events -+ } -+ -+ case QEvent::MouseButtonRelease: -+ { -+ qApp->removeEventFilter(this); -+#ifndef QT_NO_CURSOR -+ if (restoreCursor) { -+ QApplication::restoreOverrideCursor(); -+ willDrop = false; -+ restoreCursor = false; -+ } -+#endif -+ if (object && object->target()) { -+ -+ QMouseEvent *me = (QMouseEvent *)e; -+ -+ QDragManager *manager = QDragManager::self(); -+ QMimeData *dropData = manager->object ? manager->dragPrivate()->data : manager->dropData; -+ -+ QDropEvent de(object->target()->mapFromGlobal(me->globalPos()), possible_actions, dropData, -+ me->buttons(), me->modifiers()); -+ QApplication::sendEvent(object->target(), &de); -+ if (de.isAccepted()) -+ global_accepted_action = de.dropAction(); -+ else -+ global_accepted_action = Qt::IgnoreAction; -+ -+ if (object) -+ object->deleteLater(); -+ drag_object = object = 0; -+ } -+ eventLoop->exit(); -+ return true; // Eat all mouse events -+ } -+ -+ default: -+ break; -+ } -+ return false; -+} -+ -+Qt::DropAction QDragManager::drag(QDrag *o) -+{ -+ if (object == o || !o || !o->source()) { -+ return Qt::IgnoreAction; -+ } -+ -+ if (object) { -+ cancel(); -+ qApp->removeEventFilter(this); -+ beingCancelled = false; -+ } -+ -+ object = drag_object = o; -+ -+ oldstate = Qt::NoModifier; // #### Should use state that caused the drag -+ willDrop = false; -+ -+ object->d_func()->target = 0; -+ -+ qApp->installEventFilter(this); -+ -+ global_accepted_action = defaultAction(dragPrivate()->possible_actions, Qt::NoModifier); -+ qt_haiku_dnd_dragging = true; -+ -+ eventLoop = new QEventLoop; -+ // block -+ (void) eventLoop->exec(QEventLoop::AllEvents); -+ delete eventLoop; -+ eventLoop = 0; -+ -+ qt_haiku_dnd_dragging = false; -+ -+ return global_accepted_action; -+} -+ -+ -+void QDragManager::cancel(bool deleteSource) -+{ -+ beingCancelled = true; -+ -+ if (object->target()) { -+ QDragLeaveEvent dle; -+ QApplication::sendEvent(object->target(), &dle); -+ } -+ -+ if (drag_object) { -+ if (deleteSource) -+ object->deleteLater(); -+ drag_object = object = 0; -+ } -+ -+ global_accepted_action = Qt::IgnoreAction; -+} -+ -+ -+void QDragManager::drop() -+{ -+} -+ -+QVariant QDropData::retrieveData_sys(const QString &mimetype, QVariant::Type type) const -+{ -+ if (!drag_object) -+ return QVariant(); -+ QByteArray data = drag_object->mimeData()->data(mimetype); -+ if (type == QVariant::String) -+ return QString::fromUtf8(data); -+ return data; -+} -+ -+bool QDropData::hasFormat_sys(const QString &format) const -+{ -+ return formats().contains(format); -+} -+ -+QStringList QDropData::formats_sys() const -+{ -+ if (drag_object) -+ return drag_object->mimeData()->formats(); -+ return QStringList(); -+} -+ -+QT_END_NAMESPACE -+#endif // QT_NO_DRAGANDDROP -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qeventdispatcher_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qeventdispatcher_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qeventdispatcher_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qeventdispatcher_haiku.cpp 2011-06-13 22:06:43.305922048 +0000 -@@ -0,0 +1,94 @@ -+#include -+#include "qeventdispatcher_haiku_p.h" -+#include -+#include -+#include -+ -+#include -+#include -+ -+// Debugging part -+ -+#define DEBUG_HAIKU_LEVEL 0 -+// 1 Unimplemented -+// 2-4 nothing -+// 5 reimplemented -+ -+#if defined(DEBUG_HAIKU_LEVEL) && DEBUG_HAIKU_LEVEL > 0 -+void debugprint(int level, const char *msg, ...) -+{ -+ va_list args; -+ va_start(args, msg); -+ if (DEBUG_HAIKU_LEVEL >= level) -+ vfprintf(stderr, msg, args); -+ va_end(args); -+} -+#else -+#define debugprint(...) -+#endif -+ -+class QEventDispatcherHaikuPrivate : public QEventDispatcherUNIXPrivate -+{ -+ QEventDispatcherHaikuPrivate() : QEventDispatcherUNIXPrivate() { } -+ ~QEventDispatcherHaikuPrivate() { } -+}; -+ -+QEventDispatcherHaiku::QEventDispatcherHaiku(QObject *parent) -+ : QEventDispatcherUNIX(*new QEventDispatcherUNIXPrivate, parent) -+{ -+ debugprint(5, "Reimp: QEventDispatcherHaiku::QEventDispatcherHaiku \n"); -+} -+QEventDispatcherHaiku::~QEventDispatcherHaiku() -+{ -+ debugprint(5, "Reimp: QEventDispatcherHaiku::~QEventDispatcherHaiku \n"); -+} -+ -+bool -+QEventDispatcherHaiku::processEvents(QEventLoop::ProcessEventsFlags -+flags) -+{ -+ Q_D(QEventDispatcherHaiku); -+ debugprint(5, "Reimp: QEventDispatcherHaiku::processEvents\n"); -+ -+ d->interrupt = false; -+ emit awake(); -+ -+ bool canWait = false; -+ bool retVal = false; -+ do { -+ QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData); -+ QThreadData *data = d->threadData; -+ canWait = (//!retVal -+ data->canWait -+ && !d->interrupt -+ && (flags & QEventLoop::WaitForMoreEvents)); -+ } while (false);//canWait); -+ -+ if (!d->interrupt) { -+// fprintf(stderr, "Entering Unix processEvents\n"); -+ bool result = QEventDispatcherUNIX::processEvents(flags); -+// fprintf(stderr, "Exiting Unix processEvents\n"); -+ return result; -+ } -+ return true; -+} -+bool QEventDispatcherHaiku::hasPendingEvents() -+{ -+ debugprint(5, "Reimp: QEventDispatcherHaiku::hasPendingEvents\n"); -+ return false; -+} -+ -+void QEventDispatcherHaiku::flush() -+{ -+ debugprint(5, "Reimp: QEventDispatcherHaiku::flush\n"); -+} -+ -+void QEventDispatcherHaiku::startingUp() -+{ -+ debugprint(5, "Reimp: QEventDispatcherHaiku::startingUp\n"); -+} -+void QEventDispatcherHaiku::closingDown() -+{ -+ debugprint(5, "Reimp: QEventDispatcherHaiku::closingDown\n"); -+} -+ -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qeventdispatcher_haiku_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qeventdispatcher_haiku_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qeventdispatcher_haiku_p.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qeventdispatcher_haiku_p.h 2011-06-13 22:06:43.307757056 +0000 -@@ -0,0 +1,28 @@ -+#ifndef FEASOIFESWR -+#define FEASOIFESWR -+#include -+#include -+ -+class QEventDispatcherHaikuPrivate; -+ -+class QEventDispatcherHaiku : public QEventDispatcherUNIX -+{ -+ //Q_OBJECT -+ Q_DECLARE_PRIVATE(QEventDispatcherHaiku) -+ -+public: -+ explicit QEventDispatcherHaiku(QObject *parent = 0); -+ ~QEventDispatcherHaiku(); -+ -+ bool processEvents(QEventLoop::ProcessEventsFlags flags); -+ bool hasPendingEvents(); -+ -+ void flush(); -+ -+ void startingUp(); -+ void closingDown(); -+ -+protected: -+}; -+ -+#endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qguiplatformplugin.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qguiplatformplugin.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qguiplatformplugin.cpp 2011-03-30 05:19:04.050069504 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qguiplatformplugin.cpp 2011-06-13 22:06:43.310378496 +0000 -@@ -156,6 +156,8 @@ QString QGuiPlatformPlugin::styleName() - return QLatin1String("Plastique"); // default style for X11 and small devices - #elif defined(Q_WS_MAC) - return QLatin1String("Macintosh"); // default style for all Mac's -+#elif defined(Q_WS_HAIKU) -+ return QLatin1String("Haiku"); // default style for Haiku - #elif defined(Q_WS_X11) - QString stylename; - switch(X11->desktopEnvironment) { -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qkeymapper_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qkeymapper_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qkeymapper_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qkeymapper_haiku.cpp 2011-06-13 22:06:43.312475648 +0000 -@@ -0,0 +1,208 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the QtGui of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** No Commercial Usage -+** This file contains pre-release code and may not be distributed. -+** You may use this file in accordance with the terms and conditions -+** contained in the Technology Preview License Agreement accompanying -+** this package. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain -+** additional rights. These rights are described in the Nokia Qt LGPL -+** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this -+** package. -+** -+** If you have questions regarding the use of this file, please contact -+** Nokia at qt-info@nokia.com. -+** -+** -+** -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include "qkeymapper_p.h" -+ -+#include -+ -+QKeyMapperPrivate::QKeyMapperPrivate() -+{ -+ uint32 scan_codes[] = { -+ Qt::Key_Escape, 0x01, -+ Qt::Key_F1, 0x02, -+ Qt::Key_F2, 0x03, -+ Qt::Key_F3, 0x04, -+ Qt::Key_F4, 0x05, -+ Qt::Key_F5, 0x06, -+ Qt::Key_F6, 0x07, -+ Qt::Key_F7, 0x08, -+ Qt::Key_F8, 0x09, -+ Qt::Key_F9, 0x0A, -+ Qt::Key_F10, 0x0B, -+ Qt::Key_F11, 0x0C, -+ Qt::Key_F12, 0x0D, -+ Qt::Key_Print, 0x0E, -+// Qt::Key_ScrollLock = 0x0F, //modificator -+ Qt::Key_Pause, 0x22, -+ -+ Qt::Key_AsciiTilde, 0x11, -+ Qt::Key_1, 0x12, -+ Qt::Key_2, 0x13, -+ Qt::Key_3, 0x14, -+ Qt::Key_4, 0x15, -+ Qt::Key_5, 0x16, -+ Qt::Key_6, 0x17, -+ Qt::Key_7, 0x18, -+ Qt::Key_8, 0x19, -+ Qt::Key_9, 0x1A, -+ Qt::Key_0, 0x1B, -+ Qt::Key_Minus, 0x1C, -+ Qt::Key_Plus, 0x1D, -+ Qt::Key_Backspace, 0x1E, -+ Qt::Key_Insert, 0x1F, -+ Qt::Key_Home, 0x20, -+ Qt::Key_PageUp, 0x21, -+// Qt::Key_NumLock, 0x22, //modificator -+ Qt::Key_Slash, 0x23, -+ Qt::Key_Asterisk, 0x24, -+ Qt::Key_Minus, 0x25, -+ -+ Qt::Key_Tab, 0x26, -+ Qt::Key_Q, 0x27, -+ Qt::Key_W, 0x28, -+ Qt::Key_E, 0x29, -+ Qt::Key_R, 0x2A, -+ Qt::Key_T, 0x2B, -+ Qt::Key_Y, 0x2C, -+ Qt::Key_U, 0x2D, -+ Qt::Key_I, 0x2E, -+ Qt::Key_O, 0x2F, -+ Qt::Key_P, 0x30, -+ Qt::Key_BracketLeft,0x31, -+ Qt::Key_BracketRight,0x32, -+ Qt::Key_Backslash, 0x33, -+ Qt::Key_Delete, 0x34, -+ Qt::Key_End, 0x35, -+ Qt::Key_PageDown, 0x36, -+ Qt::Key_Home, 0x37, //numpad -+ Qt::Key_Up, 0x38, //numpad -+ Qt::Key_PageUp, 0x39, //numpad -+ Qt::Key_Plus, 0x3A, //numpad -+ -+// Qt::Key_CapsLock, 0x3B, //modificator -+ Qt::Key_A, 0x3C, -+ Qt::Key_S, 0x3D, -+ Qt::Key_D, 0x3E, -+ Qt::Key_F, 0x3F, -+ Qt::Key_G, 0x40, -+ Qt::Key_H, 0x41, -+ Qt::Key_J, 0x42, -+ Qt::Key_K, 0x43, -+ Qt::Key_L, 0x44, -+ Qt::Key_Colon, 0x45, -+ Qt::Key_QuoteDbl, 0x46, -+ Qt::Key_Return, 0x47, -+ Qt::Key_Left, 0x48, //numpad -+ Qt::Key_5, 0x49, //numpad ??? -+ Qt::Key_Right, 0x4A, //numpad -+ -+ Qt::Key_Z, 0x4C, -+ Qt::Key_X, 0x4D, -+ Qt::Key_C, 0x4E, -+ Qt::Key_V, 0x4F, -+ Qt::Key_B, 0x50, -+ Qt::Key_N, 0x51, -+ Qt::Key_M, 0x51, -+ Qt::Key_Less, 0x52, -+ Qt::Key_Greater, 0x54, -+ Qt::Key_Question, 0x55, -+ Qt::Key_Up, 0x57, //cursor -+ Qt::Key_End, 0x58, //numpad -+ Qt::Key_Down, 0x59, //numpad -+ Qt::Key_PageDown, 0x5A, //numpad -+ Qt::Key_Enter, 0x5B, //numpad -+ -+ Qt::Key_Space, 0x5E, -+ Qt::Key_Left, 0x61, //cursor -+ Qt::Key_Down, 0x62, //cursor -+ Qt::Key_Right, 0x63, //cursor -+ Qt::Key_Insert, 0x64, //cursor -+ Qt::Key_Delete, 0x65, //numpad -+ 0, 0x00 -+ }; -+ -+uint32 scan_codes_numlock[] = { -+ Qt::Key_7, 0x37, -+ Qt::Key_8, 0x38, -+ Qt::Key_9, 0x39, -+ Qt::Key_Plus, 0x3A, -+ Qt::Key_4, 0x48, -+ Qt::Key_5, 0x49, -+ Qt::Key_6, 0x4A, -+ Qt::Key_1, 0x58, -+ Qt::Key_2, 0x59, -+ Qt::Key_3, 0x5A, -+ Qt::Key_Enter, 0x5B, -+ Qt::Key_Comma, 0x65, -+ 0, 0x00 -+ }; -+ -+ memcpy(ScanCodes,scan_codes,sizeof(scan_codes)); -+ memcpy(ScanCodes_Numlock,scan_codes_numlock,sizeof(scan_codes_numlock)); -+} -+ -+QKeyMapperPrivate::~QKeyMapperPrivate() -+{ } -+ -+void QKeyMapperPrivate::clearMappings() -+{ } -+ -+QList QKeyMapperPrivate::possibleKeys(QKeyEvent *) -+{ -+ return QList(); -+} -+ -+uint32 QKeyMapperPrivate::translateKeyCode(int32 key) -+{ -+ uint32 code = 0; -+ int i = 0; -+ if(modifiers()&&B_NUM_LOCK) { -+ while (ScanCodes_Numlock[i]) { -+ if ( key == ScanCodes_Numlock[i+1]) { -+ code = ScanCodes_Numlock[i]; -+ break; -+ } -+ i += 2; -+ } -+ if(code>0) -+ return code; -+ } -+ -+ i = 0; -+ while (ScanCodes[i]) { -+ if ( key == ScanCodes[i+1]) { -+ code = ScanCodes[i]; -+ break; -+ } -+ i += 2; -+ } -+ return code; -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qkeymapper_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qkeymapper_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qkeymapper_p.h 2011-03-30 05:19:04.003145728 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qkeymapper_p.h 2011-06-13 22:06:43.314572800 +0000 -@@ -213,6 +213,10 @@ public: - int mapS60ScanCodesToQt(TUint s60key); - int mapQtToS60Key(int qtKey); - int mapQtToS60ScanCodes(int qtKey); -+#elif defined(Q_WS_HAIKU) -+ uint32 translateKeyCode(int32 key); -+ uint32 ScanCodes[256]; -+ uint32 ScanCodes_Numlock[16]; - #endif - }; - -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qsound_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qsound_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qsound_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qsound_haiku.cpp 2011-06-13 22:06:43.316932096 +0000 -@@ -0,0 +1,26 @@ -+#include "qapplication.h" -+#include "qsound.h" -+#include "qsound_p.h" -+ -+class QAuServerNull : public QAuServer -+{ -+public: -+ QAuServerNull(QObject* parent); -+ -+ void play(const QString&) { } -+ void play(QSound*s) { while(decLoop(s) > 0) /* nothing */ ; } -+ void stop(QSound*) { } -+ bool okay() { return false; } -+}; -+ -+QAuServerNull::QAuServerNull(QObject* parent) -+ : QAuServer(parent) -+{ -+} -+ -+QAuServer* qt_new_audio_server() -+{ -+// fprintf(stderr, "Unimplemented: qt_new_audio_server()\n"); -+ return new QAuServerNull(qApp); -+} -+ -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget.cpp 2011-03-30 05:19:04.060030976 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget.cpp 2011-06-13 22:06:43.326107136 +0000 -@@ -1466,6 +1466,18 @@ void QWidget::create(WId window, bool in - setAttribute(Qt::WA_WState_Created); // set created flag - d->create_sys(window, initializeWindow, destroyOldWindow); - -+#ifdef Q_WS_HAIKU -+if (windowType() != Qt::Desktop){ //temporary hack, Desktop don't have native view -+ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendUpdateWidget()),this,SLOT(slot_updateWidget()), Qt::QueuedConnection); -+ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendUpdateWidgetRect(QRect)),this,SLOT(slot_updateWidgetRect(QRect)), Qt::QueuedConnection); -+ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendHaikuEvent(QObject *, QEvent *)),this,SLOT(slot_sendEvent(QObject *, QEvent *)),Qt::QueuedConnection); -+ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendResizeWidget(int, int)),this,SLOT(slot_sendResizeWidget(int, int)), Qt::QueuedConnection); -+ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendMoveWidget(int, int)),this,SLOT(slot_sendMoveWidget(int, int)), Qt::QueuedConnection); -+ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendSetActiveWindow(QWidget *)),this,SLOT(slot_sendSetActiveWindow(QWidget *)), Qt::QueuedConnection); -+ QObject::connect((const QObject *)d->nativeView, SIGNAL(sendCloseWindow(QWidget *)),this,SLOT(slot_sendCloseWindow(QWidget *)), Qt::QueuedConnection); -+} -+#endif -+ - // a real toplevel window needs a backing store - if (isWindow() && windowType() != Qt::Desktop) { - d->topData()->backingStore.destroy(); -@@ -12547,6 +12559,53 @@ void QWidgetPrivate::syncUnifiedMode() { - - #endif // QT_MAC_USE_COCOA - -+/* -+ Trap slot functions for Haiku events -+*/ -+void QWidget::slot_updateWidget() -+{ -+ update(); -+} -+ -+void QWidget::slot_updateWidgetRect(QRect r) -+{ -+ update(r); -+} -+ -+void QWidget::slot_sendEvent(QObject *receiver, QEvent *event) -+{ -+ // close all active popup window -+ if (event->type() == QEvent::MouseButtonPress && -+ qApp->activePopupWidget() && -+ qApp->activePopupWidget()->nativeView()->Window() != nativeView()->Window()) -+ qApp->activePopupWidget()->close(); -+ -+ QApplication::sendSpontaneousEvent(receiver, event); -+ delete event; -+} -+ -+void QWidget::slot_sendResizeWidget(int width, int height) -+{ -+ resize(width, height); -+} -+ -+void QWidget::slot_sendMoveWidget(int x, int y) -+{ -+ move(x,y); -+} -+ -+void QWidget::slot_sendSetActiveWindow(QWidget *widget) -+{ -+ if (/*!d->inPopupMode() && */ widget || (!widget && QApplicationPrivate::active_window == this)) -+ qApp->setActiveWindow(widget); -+} -+ -+void QWidget::slot_sendCloseWindow(QWidget *widget) -+{ -+ QWidgetPrivate *widget_private = widget->d_func(); -+ widget_private->close_helper(QWidgetPrivate::CloseWithSpontaneousEvent); -+} -+ - QT_END_NAMESPACE - - #include "moc_qwidget.cpp" -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget.h 2011-03-30 05:19:04.063963136 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget.h 2011-06-13 22:06:43.328466432 +0000 -@@ -100,6 +100,9 @@ class QGraphicsEffect; - #if defined(Q_WS_X11) - class QX11Info; - #endif -+#if defined(Q_WS_HAIKU) && !defined(BUILD_WEBKIT) -+#include "qwidget_haiku.h" -+#endif - - class QWidgetData - { -@@ -254,6 +257,17 @@ public Q_SLOTS: - void setEnabled(bool); - void setDisabled(bool); - void setWindowModified(bool); -+ -+//#ifdef Q_WS_HAIKU // Its all for moc, but moc does not support #ifdef -+// Remove! break cross-platform! -+ void slot_updateWidget(); -+ void slot_updateWidgetRect(QRect r); -+ void slot_sendEvent(QObject *receiver, QEvent *event); -+ void slot_sendResizeWidget(int width, int height); -+ void slot_sendMoveWidget(int x, int y); -+ void slot_sendSetActiveWindow(QWidget *widget); -+ void slot_sendCloseWindow(QWidget *widget); -+//#endif - - // Widget coordinates - -@@ -604,6 +618,10 @@ public: - Qt::HANDLE handle() const; - #endif - -+#if defined(Q_WS_HAIKU) -+ BView* nativeView() const; -+#endif -+ - void setAttribute(Qt::WidgetAttribute, bool on = true); - inline bool testAttribute(Qt::WidgetAttribute) const; - -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_haiku.cpp 2011-06-13 22:06:43.333185024 +0000 -@@ -0,0 +1,1457 @@ -+#include "qwidget_haiku.h" -+#include -+#include "qapplication_p.h" -+#include "private/qkeymapper_p.h" -+#include "qdesktopwidget.h" -+#include "qwidget.h" -+#include "qwidget_p.h" -+#include "qtextcodec.h" -+ -+#include -+#include -+#include "qevent_p.h" -+#include "private/qwindowsurface_raster_p.h" -+#include "qapplication.h" -+#include "qfileinfo.h" -+#include -+#include -+#include -+ -+extern int haiku_global_mouse_x; -+extern int haiku_global_mouse_y; -+ -+static QWidget *keyboardGrb = 0; -+static QWidget *mouseGrb = 0; -+ -+QtHaikuView::QtHaikuView(BRect frame, const char *name, uint32 resizingMode, uint32 flags) -+ : QObject(), BView(frame, name, resizingMode, flags), -+ isVisible(true), fWidget(0), fWidgetPrivate(0), -+ last_down_buttons(0), last_clicked_buttons(0), last_mouse_x(-1), last_mouse_y(-1), last_click_time(0), last_draw_event(0) -+{ -+ -+} -+ -+Qt::MouseButton -+QtHaikuView::translateMouseButton(uint32 s) -+{ -+ Qt::MouseButton ret = Qt::NoButton; -+ if (s & B_PRIMARY_MOUSE_BUTTON) -+ ret = Qt::LeftButton; -+ if (s & B_SECONDARY_MOUSE_BUTTON) -+ ret = Qt::RightButton; -+ if (s & B_TERTIARY_MOUSE_BUTTON) -+ ret = Qt::MidButton; -+ return ret; -+} -+ -+Qt::MouseButtons -+QtHaikuView::translateMouseButtons(uint32 s) -+{ -+ Qt::MouseButtons ret = 0; -+ if (s & B_PRIMARY_MOUSE_BUTTON) -+ ret |= Qt::LeftButton; -+ if (s & B_SECONDARY_MOUSE_BUTTON) -+ ret |= Qt::RightButton; -+ if (s & B_TERTIARY_MOUSE_BUTTON) -+ ret |= Qt::MidButton; -+ return ret; -+} -+ -+void -+QtHaikuView::sendWheelEvent(int delta_x, int delta_y) -+{ -+ BPoint mouse_pos; -+ uint32 buttons; -+ uint32 mod = modifiers(); -+ -+ GetMouse(&mouse_pos,&buttons); -+ Qt::KeyboardModifiers qt_mod = translateModifiers(mod); -+ Qt::MouseButtons qt_buttons = translateMouseButtons(buttons); -+ -+ BPoint screen_pos = ConvertToScreen(mouse_pos); -+ const QPoint globalPos = QPoint(screen_pos.x,screen_pos.y); -+ QPoint pos = QPoint(mouse_pos.x,mouse_pos.y); -+ -+ if(delta_x!=0) -+ emit sendHaikuEvent(fWidget, new QWheelEvent(pos, globalPos, -delta_x, qt_buttons, qt_mod, Qt::Horizontal)); -+ if(delta_y!=0) -+ emit sendHaikuEvent(fWidget, new QWheelEvent(pos, globalPos, -delta_y, qt_buttons, qt_mod, Qt::Vertical)); -+} -+ -+Qt::KeyboardModifiers -+QtHaikuView::translateModifiers(uint32 s) -+{ -+ Qt::KeyboardModifiers ret = 0; -+ if (s & B_SHIFT_KEY) -+ ret |= Qt::ShiftModifier; -+ if (s & B_CONTROL_KEY) -+ ret |= Qt::AltModifier; -+ if (s & B_COMMAND_KEY) -+ ret |= Qt::ControlModifier; -+ return ret; -+} -+ -+void QtHaikuView::FrameResized(float width, float height) -+{ -+ QSize widgetSize = fWidget->size(); -+ QSize newSize = QSize(width, height); -+ if (widgetSize == newSize) -+ return; -+ fWidgetPrivate->data.fstrut_dirty = true; -+ -+ emit sendUpdateWidget(); -+} -+ -+void -+QtHaikuView::Hide() -+{ -+ if (!isVisible) return; -+ if (Window() && Window()->LockLooper()){ -+ BView::Hide(); -+ isVisible = false; -+ Window()->UnlockLooper(); -+ } -+} -+ -+void -+QtHaikuView::Show() -+{ -+ if (isVisible) return; -+ if (Window() && Window()->LockLooper()){ -+ BView::Show(); -+ isVisible = true; -+ Window()->UnlockLooper(); -+ } -+} -+ -+void -+QtHaikuWindow::Hide() -+{ -+ if (LockLooper()){ -+ if (!IsHidden()) -+ BWindow::Hide(); -+ UnlockLooper(); -+ } -+} -+ -+void -+QtHaikuWindow::Show() -+{ -+ if (LockLooper()){ -+ if (IsHidden()) -+ BWindow::Show(); -+ UnlockLooper(); -+ } -+} -+ -+ -+QtHaikuView::~QtHaikuView() -+{ -+// debugprint(5, "Reimplemented: QtHaikuView::~QtHaikuView\n"); -+} -+ -+inline void QtHaikuView::setWidget(QWidget *widget, QWidgetPrivate *widgetPrivate) -+{ -+ fWidget = widget; -+ fWidgetPrivate = widgetPrivate; -+} -+ -+void QtHaikuView::MouseUp(BPoint point) -+{ -+ BPoint point2; -+ uint32 h_mod=modifiers(); -+ uint32 h_buttons = 0; -+ uint32 h_button = last_down_buttons; -+ last_down_buttons = 0; -+ -+ Qt::MouseButton qt_button = translateMouseButton(h_button); -+ Qt::MouseButtons qt_buttons = translateMouseButtons(h_buttons); -+ Qt::KeyboardModifiers qt_mod = translateModifiers(h_mod); -+ -+ BPoint glob_pos = ConvertToScreen(point); -+ haiku_global_mouse_x = glob_pos.x; -+ haiku_global_mouse_y = glob_pos.y; -+ -+ QWidget *widget = fWidget->mouseGrabber(); -+ if(!widget) -+ widget = fWidget; -+ -+ QWidget *wat = QApplication::widgetAt(QPoint(glob_pos.x,glob_pos.y)); -+ -+// qDebug() << "MouseUp " << fWidget << widget << wat; -+ if(wat && wat!=widget) { -+ QPoint lpoint = wat->mapFromGlobal(QPoint(glob_pos.x,glob_pos.y)); -+ if(fWidget->nativeView()->Window()==wat->nativeView()->Window()) { -+ widget = wat; -+ point.x= lpoint.x(); -+ point.y= lpoint.y(); -+ } -+ } -+ -+ if (qt_button == Qt::RightButton) -+ emit sendHaikuEvent(widget, new QContextMenuEvent(QContextMenuEvent::Mouse, -+ QPoint(point.x,point.y), QPoint(haiku_global_mouse_x,haiku_global_mouse_y), qt_mod)); -+ else -+ emit sendHaikuEvent(widget, new QMouseEvent(QEvent::MouseButtonRelease, -+ QPoint(point.x,point.y), qt_button, qt_buttons, qt_mod)); -+} -+ -+void QtHaikuView::MouseDown(BPoint point) -+{ -+ uint32 h_mod=modifiers(); -+ uint32 h_buttons = Window()->CurrentMessage()->FindInt32("buttons"); -+ uint32 h_button = h_buttons; //TODO: only one button in per time -+ -+ Qt::MouseButton qt_button = translateMouseButton(h_button); -+ Qt::MouseButtons qt_buttons = translateMouseButtons(h_buttons); -+ Qt::KeyboardModifiers qt_mod = translateModifiers(h_mod); -+ -+ BPoint glob_pos = ConvertToScreen(point); -+ haiku_global_mouse_x = glob_pos.x; -+ haiku_global_mouse_y = glob_pos.y; -+ -+ SetMouseEventMask(B_POINTER_EVENTS,B_NO_POINTER_HISTORY); -+ -+ QWidget *widget = fWidget->mouseGrabber(); -+ if(!widget) -+ widget = fWidget; -+ -+ QWidget *wat = QApplication::widgetAt(QPoint(glob_pos.x,glob_pos.y)); -+ -+// qDebug() << "MouseDown " << fWidget << widget << wat; -+ if(wat && wat!=widget) { -+ QPoint lpoint = wat->mapFromGlobal(QPoint(glob_pos.x,glob_pos.y)); -+ if(fWidget->nativeView()->Window()==wat->nativeView()->Window()) { -+ widget = wat; -+ point.x= lpoint.x(); -+ point.y= lpoint.y(); -+ } -+ } -+ -+ bigtime_t now=system_time(); -+ -+ bigtime_t double_click_speed; -+ get_click_speed(&double_click_speed); -+ -+ if( now - last_click_time < double_click_speed && -+ last_clicked_buttons == h_buttons && -+ last_mouse_x==glob_pos.x && -+ last_mouse_y==glob_pos.y) { -+ last_clicked_buttons = 0; -+ emit sendHaikuEvent(widget, new QMouseEvent(QEvent::MouseButtonDblClick, -+ QPoint(point.x,point.y), qt_button, qt_buttons, qt_mod)); -+ } else { -+ emit sendHaikuEvent(widget, new QMouseEvent(QEvent::MouseButtonPress, -+ QPoint(point.x,point.y), qt_button, qt_buttons, qt_mod)); -+ } -+// qDebug()<<"MouseDown() "<cursor().handle(); -+ if(curs) -+ SetViewCursor(curs); -+ else -+ SetViewCursor(B_CURSOR_SYSTEM_DEFAULT); -+ } -+ break; -+ case B_EXITED_VIEW: -+ break; -+ } -+ -+ uint32 h_mod=modifiers(); -+ uint32 h_buttons = last_down_buttons; -+ uint32 h_button = h_buttons; //TODO: only one button in per time -+ -+ Qt::MouseButton qt_button = translateMouseButton(h_button); -+ Qt::MouseButtons qt_buttons = translateMouseButtons(h_buttons); -+ Qt::KeyboardModifiers qt_mod = translateModifiers(h_mod); -+ -+ BPoint glob_pos = ConvertToScreen(point); -+ -+ haiku_global_mouse_x = glob_pos.x; -+ haiku_global_mouse_y = glob_pos.y; -+ -+ QWidget *widget = fWidget->mouseGrabber(); -+ if(!widget) -+ widget = fWidget; -+ -+ -+ /*QWidget *wat = QApplication::widgetAt(QPoint(glob_pos.x,glob_pos.y)); -+ -+ if(wat && wat!=widget) { -+ QPoint lpoint = wat->mapFromGlobal(QPoint(glob_pos.x,glob_pos.y)); -+ widget = wat; -+ point.x= lpoint.x(); -+ point.y= lpoint.y(); -+ }*/ -+ -+ emit sendHaikuEvent(widget, new QMouseEvent(QEvent::MouseMove, QPoint(point.x,point.y), Qt::NoButton, qt_buttons, qt_mod)); -+// qDebug()<<"MouseMove()"<what) { -+ default: -+ BView::MessageReceived(msg); -+ break; -+ } -+} -+ -+QtHaikuWindow::QtHaikuWindow(BRect frame, const char *title, window_look look, window_feel feel, uint32 flags) -+ : BWindow(frame, title, look, feel, flags) -+{ -+} -+ -+QtHaikuWindow::~QtHaikuWindow() -+{ -+} -+ -+void -+QtHaikuWindow::sendKeyEvent(QEvent::Type type, BMessage *msg) -+{ -+ int32 key = 0; -+ uint32 code = 0; -+ uint32 mod = modifiers(); -+ extern QTextCodec *qt_input_mapper; // from qapplication_haiku.cpp -+ QChar converted; -+ const char *bytes; -+ QString text; -+ -+ if ( msg ) { -+ if(msg->FindString("bytes", &bytes) == B_OK) { -+ if (qt_input_mapper) -+ text = qt_input_mapper->toUnicode(bytes, strlen(bytes), 0); -+ } -+ if(msg->FindInt32("key", &key) == B_OK) { -+ code = qt_keymapper_private()->translateKeyCode(key); -+ } -+ } -+ -+ if (text.isEmpty()) { -+ text.fromLatin1(bytes); -+ } -+ -+ Qt::KeyboardModifiers qt_mod = fView->translateModifiers(mod); -+ -+ QWidget *widget; -+ widget = QWidget::keyboardGrabber(); -+ if (!widget) { -+ if (QApplicationPrivate::popupWidgets != 0) { -+ widget = QApplication::activePopupWidget()->focusWidget(); -+ if (!widget) { -+ widget = QApplication::activePopupWidget(); -+ } -+ } else { -+ widget = QApplicationPrivate::focus_widget; -+ if (!widget) { -+ widget = fView->fWidget; -+ } -+ } -+ } -+ -+// qDebug() << "KeyEvent: " << code << " (" <sendHaikuEvent(widget, new QKeyEvent(type, code, qt_mod, text, false, text.length())); -+} -+ -+void -+QtHaikuWindow::DispatchMessage(BMessage *msg, BHandler *handler) -+{ -+ switch(msg->what) { -+ case B_UNMAPPED_KEY_DOWN: -+ case B_KEY_DOWN: -+ { -+ sendKeyEvent(QEvent::KeyPress, msg); -+ break; -+ } -+ case B_UNMAPPED_KEY_UP: -+ case B_KEY_UP: -+ { -+ sendKeyEvent(QEvent::KeyRelease, msg); -+ break; -+ } -+ default: -+ break; -+ } -+ BWindow::DispatchMessage(msg, handler); -+} -+ -+void QtHaikuWindow::MessageReceived(BMessage* msg) -+{ -+ switch(msg->what) { -+ case B_MOUSE_WHEEL_CHANGED: -+ { -+ float shift_x=0; -+ float shift_y=0; -+ if(msg->FindFloat("be:wheel_delta_x",&shift_x)!=B_OK) -+ shift_x = 0; -+ if(msg->FindFloat("be:wheel_delta_y",&shift_y)!=B_OK) -+ shift_y = 0; -+ -+ if(shift_x != 0 || shift_y !=0) { -+ BView *view = LastMouseMovedView(); -+ QtHaikuView *widget_view = (QtHaikuView*)view; -+ widget_view->sendWheelEvent(shift_x*120, shift_y*120); -+ } -+ break; -+ } -+ default: -+ BWindow::MessageReceived(msg); -+ break; -+ } -+} -+ -+void QtHaikuWindow::FrameResized(float width, float height) -+{ -+ QRect cr = fView->fWidget->geometry(); -+ -+ QSize widgetSize = fView->fWidget->size(); -+ QSize newSize = QSize(width+1, height+1); -+ if (widgetSize == newSize) -+ return; -+ -+ cr.setSize(newSize); -+ fView->fWidgetPrivate->data.crect = cr; -+ fView->fWidgetPrivate->data.fstrut_dirty = true; -+ emit fView->sendHaikuEvent(fView->fWidget, new QResizeEvent(newSize, widgetSize)); -+} -+ -+void QtHaikuWindow::FrameMoved(BPoint point) -+{ -+ QRect cr = fView->fWidget->geometry(); -+ QPoint oldPos = cr.topLeft(); -+ QPoint newCPos(point.x,point.y); -+ -+ if(oldPos==newCPos) -+ return; -+ -+ while (qApp->activePopupWidget()) -+ qApp->activePopupWidget()->close(); -+ -+ fView->fWidgetPrivate->data.fstrut_dirty = true; -+ -+ cr.moveTopLeft(newCPos); -+ fView->fWidgetPrivate->data.crect = cr; -+ -+ emit fView->sendHaikuEvent(fView->fWidget, new QMoveEvent(newCPos,oldPos)); -+} -+ -+void QtHaikuWindow::WindowActivated(bool active) -+{ -+ if (active) { -+ emit fView->sendSetActiveWindow(fView->fWidget); -+ } else { -+ while (qApp->activePopupWidget()) // App(window) become inactive - we must close all popup -+ qApp->activePopupWidget()->close(); -+ emit fView->sendSetActiveWindow(0); -+ } -+} -+ -+bool QtHaikuWindow::QuitRequested() -+{ -+ emit fView->sendCloseWindow(fView->fWidget); -+ return false; -+} -+ -+inline void QtHaikuWindow::setView(QtHaikuView *view) -+{ -+ fView = view; -+ AddChild(view); -+ -+ fView->MoveTo(0,0); -+ fView->ResizeTo(Bounds().Width(),Bounds().Height()); -+ fView->SetResizingMode(B_FOLLOW_ALL_SIDES); -+} -+ -+void QtHaikuWindow::updateWindowFlags(Qt::WindowFlags flags) -+{ -+ Qt::WindowType type = static_cast(int(flags & Qt::WindowType_Mask)) ; -+ -+ bool popup = (type == Qt::Popup); -+ bool splash = (type == Qt::SplashScreen); -+ bool dialog = (type == Qt::Dialog -+ || type == Qt::Sheet -+ || (flags & Qt::MSWindowsFixedSizeDialogHint)); -+// bool desktop = (type == Qt::Desktop); -+ bool tool = (type == Qt::Tool || type == Qt::Drawer); -+ bool tooltip = (type == Qt::ToolTip); -+ -+ window_look wlook = B_TITLED_WINDOW_LOOK; -+ window_feel wfeel = B_NORMAL_WINDOW_FEEL; -+ uint32 wflag = B_NO_WORKSPACE_ACTIVATION | B_NOT_ANCHORED_ON_ACTIVATE ; -+ -+ if(tool) { -+ wlook = B_FLOATING_WINDOW_LOOK; -+ wflag |= B_WILL_ACCEPT_FIRST_CLICK; -+ } -+ -+ if(splash) { -+ wlook = B_NO_BORDER_WINDOW_LOOK; -+ } -+ -+ if(popup) { -+ wlook = B_NO_BORDER_WINDOW_LOOK; -+ wflag |= B_WILL_ACCEPT_FIRST_CLICK|B_AVOID_FRONT|B_AVOID_FOCUS; -+ flags |= Qt::WindowStaysOnTopHint; -+ } -+ -+ if (dialog) { -+// if (q->parentWidget()) -+// wfeel = B_MODAL_SUBSET_WINDOW_FEEL; -+// else -+ //wfeel = B_MODAL_APP_WINDOW_FEEL; -+ } -+ -+ if (tooltip) { -+ wlook = B_NO_BORDER_WINDOW_LOOK; -+ wflag |= B_WILL_ACCEPT_FIRST_CLICK|B_AVOID_FOCUS; -+ flags |= Qt::WindowStaysOnTopHint; -+ } -+ -+ if (flags & Qt::FramelessWindowHint) -+ wlook = B_NO_BORDER_WINDOW_LOOK; -+ if (flags & Qt::MSWindowsFixedSizeDialogHint)// (dialog) -+ wflag |= B_NOT_RESIZABLE | B_NOT_ZOOMABLE; -+ -+ if (flags & Qt::CustomizeWindowHint){ -+ //if (flags & Qt::WindowTitleHint) -+ //{ }; -+ //if (flags & Qt::WindowSystemMenuHint) -+ //{ }; -+ if (!(flags & Qt::WindowMinimizeButtonHint)) -+ wflag |= B_NOT_MINIMIZABLE; -+ if (!(flags & Qt::WindowMaximizeButtonHint)) -+ wflag |= B_NOT_ZOOMABLE; -+ if (!(flags & Qt::WindowCloseButtonHint)) -+ wflag |= B_NOT_CLOSABLE; -+ //if (flags & Qt::WindowContextHelpButtonHint) -+ // exsty |= WS_EX_CONTEXTHELP; -+ } -+ -+ if (flags & Qt::WindowStaysOnTopHint) -+ wfeel = B_FLOATING_ALL_WINDOW_FEEL; -+ -+// if (flags & Qt::WindowStaysOnBottomHint) -+// wfeel = B_FLOATING_ALL_WINDOW_FEEL; -+ -+ SetLook(wlook); -+ SetFeel(wfeel); -+ SetFlags(wflag); -+} -+ -+// Qt reimplementation -+ -+void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyOldWindow) -+{ -+ Q_Q(QWidget); -+// qDebug()<<"create_sys:"<windowType() == Qt::Desktop); -+ -+ BScreen bscreen(B_MAIN_SCREEN_ID); -+ BRect screen_frame = bscreen.Frame(); -+ -+ if (!window) // always initialize -+ initializeWindow = true; -+ -+ q->setAttribute(Qt::WA_WState_Created, false); -+ -+ if (desktop){ -+ } -+ -+ if (window) { // override the old window -+ if (destroyOldWindow) -+ destroyw = data.winid; -+ id = window; -+ nativeView = (QtHaikuView *)window; -+ ((QtHaikuWindow *)(window->Window()))->updateWindowFlags(data.window_flags); -+ } -+ else -+ if (desktop) { // desktop widget -+ if (!q->testAttribute(Qt::WA_DontShowOnScreen)) { -+ //popup = false; // force this flags off -+ data.crect.setRect(screen_frame.left,screen_frame.top,screen_frame.right,screen_frame.bottom); -+ } -+// id = GetDesktopWindow(); -+// setWinId(id); -+ } -+ else -+ { -+ if (topLevel) { // create top-level widget -+ int x=data.crect.left(), -+ y=data.crect.top(), -+ w=data.crect.width(), -+ h=data.crect.height(); -+ -+ const bool wasMoved = q->testAttribute(Qt::WA_Moved); -+ const bool wasResized = q->testAttribute(Qt::WA_Resized); -+ -+ if(!wasResized) { -+ w = screen_frame.right / 2; -+ h = (4 * screen_frame.bottom) / 10; -+ data.crect.setSize(QSize(w, h)); -+ } -+ -+ if(!wasMoved) { -+ srand(time(0)); -+ int dx = (screen_frame.right - w)/4; -+ int dy = (screen_frame.bottom - h)/4; -+ x = dx==0?0:rand() % dx + (dx/2); -+ y = dy==0?0:rand() % dy + (dy/2); -+ data.crect.moveTo(x,y); -+ } -+ -+ QString title = q->windowTitle(); -+ if (title.isEmpty()) -+ title = QFileInfo(QApplication::applicationFilePath()).fileName(); -+ nativeWindow = new QtHaikuWindow(BRect(x,y,x+w-1,y+h-1), title.toUtf8(), B_NO_BORDER_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL, 0); -+ nativeWindow->updateWindowFlags(data.window_flags); -+ nativeView = new QtHaikuView(BRect(0,0,w,h), "RootView", B_FOLLOW_ALL_SIDES, B_WILL_DRAW); -+ nativeWindow->setView(nativeView); -+ } else { -+ nativeView = new QtHaikuView(BRect(data.crect.x(),data.crect.y(),data.crect.x()+data.crect.width(),data.crect.y()+data.crect.height()), -+ "WidgetView", B_FOLLOW_NONE, B_WILL_DRAW/* | B_NAVIGABLE*/); -+ q->parentWidget()->d_func()->nativeView->AddChild(nativeView); -+ nativeWindow = q->parentWidget()->d_func()->nativeWindow; -+ } -+ -+ nativeView->setWidget(q, this); -+ if (nativeView->LockLooper()){ -+ nativeView->SetViewColor(B_TRANSPARENT_32_BIT); -+ nativeView->UnlockLooper(); -+ } -+ if (q->isWindow()) { }//nativeWindow->Hide(); // BWindow created hidden (?) -+ else -+ nativeView->Hide(); -+ } -+ -+ setWinId(nativeView); -+ -+ if (desktop) { -+ q->setAttribute(Qt::WA_WState_Visible); -+ } else if (topLevel && !q->testAttribute(Qt::WA_DontShowOnScreen)) { -+/* RECT cr; -+ GetClientRect(id, &cr); -+ // one cannot trust cr.left and cr.top, use a correction POINT instead -+ POINT pt; -+ pt.x = 0; -+ pt.y = 0; -+ ClientToScreen(id, &pt); -+ -+ if (data.crect.width() == 0 || data.crect.height() == 0) { -+ data.crect = QRect(pt.x, pt.y, data.crect.width(), data.crect.height()); -+ } else { -+ data.crect = QRect(QPoint(pt.x, pt.y), -+ QPoint(pt.x + cr.right - 1, pt.y + cr.bottom - 1)); -+ } -+ -+ if (data.fstrut_dirty) { -+ // be nice to activeqt -+ updateFrameStrut(); -+ }*/ -+ } -+ -+ -+ q->setAttribute(Qt::WA_WState_Created); // accept move/resize events -+ q->setAttribute(Qt::WA_WState_Visible, false); -+ -+ if (window) { // got window from outside -+// if (IsWindowVisible(window)) -+// q->setAttribute(Qt::WA_WState_Visible); -+// else -+// q->setAttribute(Qt::WA_WState_Visible, false); -+ } -+ -+ if (extra && !extra->mask.isEmpty()) -+ setMask_sys(extra->mask); -+ -+ if (q->hasFocus() && q->testAttribute(Qt::WA_InputMethodEnabled)) { -+ q->setFocus(); -+ } -+ -+ //if (destroyw) { -+ //BWindow *win = destroyw->Window(); -+ //if(win->Lock()) { -+ // win->Quit(); -+ // win->Unlock(); -+ //} -+ //} -+ -+// if (q != qt_tablet_widget && QWidgetPrivate::mapper) -+// qt_tablet_init(); -+ -+ if (q->testAttribute(Qt::WA_DropSiteRegistered)) -+ registerDropSite(true); -+ -+// if (maybeTopData() && maybeTopData()->opacity != 255) -+// q->setWindowOpacity(maybeTopData()->opacity/255.); -+ -+ if (topLevel && (data.crect.width() == 0 || data.crect.height() == 0)) { -+ q->setAttribute(Qt::WA_OutsideWSRange, true); -+ } -+ -+ if (!topLevel && q->testAttribute(Qt::WA_NativeWindow) && q->testAttribute(Qt::WA_Mapped)) { -+ nativeView->Window()->Show(); -+ } -+ -+// qDebug() << "=< QWidgetPrivate::create_sys(); QWidget = "<< q ; -+} -+ -+void QWidgetPrivate::hide_sys() -+{ -+ Q_Q(QWidget); -+ deactivateWidgetCleanup(); -+ Q_ASSERT(q->testAttribute(Qt::WA_WState_Created)); -+ -+ if (q->isWindow()) -+ nativeWindow->Hide(); -+ else -+ nativeView->Hide(); -+ q->setAttribute(Qt::WA_Mapped, false); -+} -+ -+void QWidgetPrivate::show_sys() -+{ -+ Q_Q(QWidget); -+ Q_ASSERT(q->testAttribute(Qt::WA_WState_Created)); -+ -+ if (q->testAttribute(Qt::WA_OutsideWSRange)){ -+ qDebug("Qt::WA_OutsideWSRange"); -+ return; -+ } -+ -+ if (q->testAttribute(Qt::WA_DontShowOnScreen)) { -+ qDebug("Qt::WA_DontShowOnScreen"); -+ invalidateBuffer(q->rect()); -+ return; -+ } -+ -+ //hack for native resize holder for window -+ if(q->inherits("QSizeGrip")) { -+ nativeView->Window()->SetLook(B_DOCUMENT_WINDOW_LOOK); -+ q->setAttribute(Qt::WA_WState_Visible, false); -+ return; -+ } -+ -+ if (q->isWindow()) { -+ if (q->isMinimized()) { -+ // ### TODO: Should handle -+ } else if (q->isMaximized()) { -+ // ### TODO: Should handle -+ } -+ } -+ if (q->testAttribute(Qt::WA_ShowWithoutActivating) -+ || (q->windowType() == Qt::Popup) -+ || (q->windowType() == Qt::ToolTip) -+ || (q->windowType() == Qt::Tool)) { -+ // ### TODO: Should Handle -+ } -+ -+// if (data.fstrut_dirty) -+// updateFrameStrut(); -+ if (q->isWindow()) -+ nativeWindow->Show(); -+ else -+ nativeView->Show(); -+ -+ q->setAttribute(Qt::WA_Mapped); -+ -+ invalidateBuffer(q->rect()); -+} -+ -+void QWidgetPrivate::setParent_sys(QWidget* parent, Qt::WindowFlags f) -+{ -+ Q_Q(QWidget); -+ -+ bool wasCreated = q->testAttribute(Qt::WA_WState_Created); -+ if (q->isVisible() && q->parentWidget() && parent != q->parentWidget()) -+ q->parentWidget()->d_func()->invalidateBuffer(q->geometry()); -+ -+ WId old_winid = data.winid; -+ bool old_w = q->isWindow(); -+ bool widgetTypeChanged = false; -+ -+ if (wasCreated && q->isVisible()) { -+ if (q->isWindow()) -+ nativeWindow->Hide(); -+ else -+ nativeView->Hide(); -+ } -+ -+ bool dropSiteWasRegistered = false; -+ if (q->testAttribute(Qt::WA_DropSiteRegistered)) { -+ dropSiteWasRegistered = true; -+ q->setAttribute(Qt::WA_DropSiteRegistered, false); // ole dnd unregister (we will register again below) -+ } -+ -+ if ((q->windowType() == Qt::Desktop)) -+ old_winid = 0; -+ -+ QObjectPrivate::setParent_helper(parent); -+ -+ bool explicitlyHidden = q->testAttribute(Qt::WA_WState_Hidden) && q->testAttribute(Qt::WA_WState_ExplicitShowHide); -+ -+ data.window_flags = f; -+ data.fstrut_dirty = true; -+ q->setAttribute(Qt::WA_WState_Created, false); -+ q->setAttribute(Qt::WA_WState_Visible, false); -+ q->setAttribute(Qt::WA_WState_Hidden, false); -+ adjustFlags(data.window_flags, q); -+ widgetTypeChanged = old_w != q->isWindow(); // widget type changed (widget<->window) -+ -+ if (wasCreated){ -+ if (parent && !parent->testAttribute(Qt::WA_WState_Created)) -+ parent->createWinId(); -+ -+ if (widgetTypeChanged){ -+ -+ BWindow *win = nativeView->Window(); -+ if (win && win->LockLooper()){ -+ nativeView->RemoveSelf(); -+ if (old_w) -+ win->Quit(); -+ else -+ win->UnlockLooper(); -+ } -+ -+ if (old_w){ //was Window, become Widget(non-Window) -+ bool wasLocked = parent->nativeView()->Looper()->IsLocked(); -+ if (wasLocked || parent->nativeView()->LockLooper() ) -+ { -+ parent->nativeView()->AddChild(nativeView); -+ nativeView->Hide(); -+ -+ nativeView->SetResizingMode(B_FOLLOW_NONE); -+ nativeView->MoveTo(data.crect.x(),data.crect.y()); -+ nativeView->ResizeTo(data.crect.x()+data.crect.width(),data.crect.y()+data.crect.height()); -+ if (!wasLocked) -+ parent->nativeView()->UnlockLooper(); -+ } -+ nativeWindow = (QtHaikuWindow *)parent->nativeView()->Window(); -+ -+ q->setAttribute(Qt::WA_WState_Created, true); -+ } -+ else{// become Window (topLevel) -+ createWinId(); -+ -+ nativeView->RemoveSelf(); //Delete new view created in create_sys. We need only BWindow -+ delete nativeView; -+ -+ nativeView = (QtHaikuView *)old_winid; -+ nativeWindow->setView(nativeView); -+ -+ nativeView->Show(); -+ setWinId(nativeView); -+ } -+ } -+ else // widgetTypeChanged == false -+ { -+ if (q->isWindow()) -+ nativeWindow->updateWindowFlags(data.window_flags); -+ else{//already created widget change parent widget from one to another -+ BWindow *win = nativeView->Window(); -+ if (win && win->LockLooper()){ -+ nativeView->RemoveSelf(); -+ win->UnlockLooper(); -+ } -+ -+ if (parent->nativeView()->LockLooper()){ -+ parent->nativeView()->AddChild(nativeView); -+ parent->nativeView()->UnlockLooper(); -+ nativeWindow = (QtHaikuWindow *)parent->nativeView()->Window(); -+ } -+ } -+ q->setAttribute(Qt::WA_WState_Created, true); -+ } -+ } -+ else -+ if (!q->isWindow() && parent->testAttribute(Qt::WA_WState_Created)) -+ createWinId(); -+ -+ if (q->isWindow() || (!parent || parent->isVisible()) || explicitlyHidden) -+ q->setAttribute(Qt::WA_WState_Hidden); -+ q->setAttribute(Qt::WA_WState_ExplicitShowHide, explicitlyHidden); -+ -+ if (extra && !extra->mask.isEmpty()) { -+ QRegion r = extra->mask; -+ extra->mask = QRegion(); -+ q->setMask(r); -+ } -+ if (extra && extra->topextra && !extra->topextra->caption.isEmpty()) { -+ //setWindowIcon_sys(true); -+ setWindowTitle_helper(extra->topextra->caption); -+ } -+ -+ if (q->testAttribute(Qt::WA_AcceptDrops) || dropSiteWasRegistered -+ || (!q->isWindow() && q->parentWidget() && q->parentWidget()->testAttribute(Qt::WA_DropSiteRegistered))) -+ q->setAttribute(Qt::WA_DropSiteRegistered, true); -+ -+ invalidateBuffer(q->rect()); -+} -+ -+void QWidgetPrivate::raise_sys() -+{ -+// Q_Q(QWidget); -+// qDebug() << "Unimplemented: QWidgetPrivate::raise_sys() "<< q ; -+} -+ -+void QWidgetPrivate::lower_sys() -+{ -+// Q_Q(QWidget); -+// qDebug() << "Unimplemented: QWidgetPrivate::lower_sys() "<< q ; -+} -+ -+void QWidgetPrivate::stackUnder_sys(QWidget* widget) -+{ -+// Q_Q(QWidget); -+// qDebug() << "Unimplemented: QWidgetPrivate::stackUnder_sys() "<< q << " top:"<isWindow() && nativeWindow) -+ nativeWindow->SetTitle(title.toUtf8()); -+} -+ -+void QWidgetPrivate::updateSystemBackground() -+{ -+// Q_Q(QWidget); -+// qDebug() << "Unimplemented: QWidgetPrivate::UpdateSystemBackground() "<< q ; -+} -+ -+void QWidgetPrivate::setModal_sys() -+{ -+ Q_Q(QWidget); -+// qDebug() << "Unimplemented: QWidgetPrivate::setModal_sys() "<< q ; -+} -+ -+void QWidgetPrivate::setConstraints_sys() -+{ -+ Q_Q(QWidget); -+// qDebug() << "QWidgetPrivate::setConstraints_sys() "<< q ; -+ if (!q->isWindow() || !q->testAttribute(Qt::WA_WState_Created) || !extra) -+ return; -+ float minw = 0, minh = 0; -+ float maxw = 10000, maxh = 10000; -+ if (extra->minw > 0 || extra->minh > 0) { -+ // add minimum size hints -+ minw = qMin(10000, extra->minw); -+ minh = qMin(10000, extra->minh); -+ } -+ if (extra->maxw < QWIDGETSIZE_MAX || extra->maxh < QWIDGETSIZE_MAX) { -+ // add maximum size hints -+ maxw = qMin(10000, extra->maxw); -+ maxh = qMin(10000, extra->maxh); -+ } -+ nativeWindow->SetSizeLimits(minw,maxw,minh,maxh); -+} -+ -+void QWidgetPrivate::setCursor_sys(const QCursor& cursor) -+{ -+ Q_UNUSED(cursor); -+} -+ -+void QWidgetPrivate::unsetCursor_sys() -+{ -+} -+ -+void QWidgetPrivate::setWSGeometry(bool dontShow, const QRect &) -+{ -+ Q_UNUSED(dontShow); -+ Q_Q(QWidget); -+// qDebug() << "Unimplemented: QWidgetPrivate::setWSGeomerty() "<< q ; -+} -+ -+void QWidgetPrivate::setGeometry_sys(int x,int y,int w,int h,bool isMove) -+{ -+ Q_Q(QWidget); -+// qDebug()<<"setGeometry_sys() "<isWindow()) -+ { -+ nativeFrame = nativeView->Window()->Frame(); -+ } -+ else -+ { -+ if(nativeView->LockLooper()) { -+ nativeFrame = nativeView->Frame(); -+ nativeView->UnlockLooper(); -+ } -+ } -+ -+ QPoint oldPos(nativeFrame.left, nativeFrame.top); -+ QPoint newPos(x,y); -+ QSize oldSize(nativeFrame.IntegerWidth(), nativeFrame.IntegerHeight()); -+ QSize newSize(w,h); -+ -+ isMove = oldPos != newPos; -+ bool isResize = oldSize != newSize; -+ -+ if (!isResize && !isMove) -+ return; -+ -+ data.crect.setRect(x, y, w, h); -+ -+ QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); -+ const bool inTopLevelResize = tlwExtra ? tlwExtra->inTopLevelResize : false; -+ -+ if (q->isWindow()){ -+ if (w == 0 || h == 0) { -+ q->setAttribute(Qt::WA_OutsideWSRange, true); -+ if (q->isVisible() && q->testAttribute(Qt::WA_Mapped)) -+ hide_sys(); -+ } else if (q->isVisible() && q->testAttribute(Qt::WA_OutsideWSRange)) { -+ q->setAttribute(Qt::WA_OutsideWSRange, false); -+ -+ // put the window in its place and show it -+ if (data.winid){ -+ nativeView->Window()->MoveTo(x, y); -+ nativeView->Window()->ResizeTo(w-1, h-1); -+ } -+ setConstraints_sys();//do_size_hints(q, extra); -+ show_sys(); -+ } else { -+ if (isMove){ -+ nativeView->Window()->MoveTo(x, y); -+ } -+ if (isResize){ -+ nativeView->Window()->ResizeTo(w-1, h-1); -+ } -+ } -+ updateFrameStrut(); -+ } else { //not Window -+ if (isResize) { -+ if(nativeView->LockLooper()) { -+ nativeView->ResizeTo(w, h); -+ nativeView->UnlockLooper(); -+ } -+ } -+ if (isMove) -+ { -+ if(nativeView->LockLooper()) { -+ nativeView->MoveTo(x, y); -+ nativeView->UnlockLooper(); -+ } -+ } -+ } -+ -+ if (q->isWindow() && q->isVisible() && isResize && !inTopLevelResize) { -+ invalidateBuffer(q->rect()); //after the resize -+ } -+ -+ if (q->isVisible()) { -+ if (isMove && q->pos() != oldPos) { -+ QMoveEvent e(q->pos(), oldPos); -+ QApplication::sendEvent(q, &e); -+ } -+ if (isResize) { -+// static bool slowResize = qgetenv("QT_SLOW_TOPLEVEL_RESIZE").toInt(); -+ // If we have a backing store with static contents, we have to disable the top-level -+ // resize optimization in order to get invalidated regions for resized widgets. -+ // The optimization discards all invalidateBuffer() calls since we're going to -+ // repaint everything anyways, but that's not the case with static contents. -+// const bool setTopLevelResize = !slowResize && q->isWindow() && extra && extra->topextra -+// && !extra->topextra->inTopLevelResize -+// && (!extra->topextra->backingStore -+// || !extra->topextra->backingStore->hasStaticContents()); -+// if (setTopLevelResize) -+// extra->topextra->inTopLevelResize = true; -+ QResizeEvent e(q->size(), oldSize); -+ QApplication::sendEvent(q, &e); -+// if (setTopLevelResize) -+ // extra->topextra->inTopLevelResize = false; -+ } -+ } else { -+ if (isMove && q->pos() != oldPos) -+ q->setAttribute(Qt::WA_PendingMoveEvent, true); -+ if (isResize) -+ q->setAttribute(Qt::WA_PendingResizeEvent, true); -+ } -+} -+ -+void QWidgetPrivate::registerDropSite(bool) -+{ -+ //debugprint(1, "Unimplemented: QWidgetPrivate::registerDropSite\n"); -+} -+ -+void QWidgetPrivate::setWindowOpacity_sys(qreal) -+{ -+ //debugprint(1, "Unimplemented: QWidgetPrivate::setWindowOpacity_sys \n"); -+} -+/* -+void QWidgetPrivate::createTLExtra() -+{ -+// fprintf(stderr, "Unimplemented: QWidgetPrivate::createTLExtra\n"); -+} -+*/ -+void QWidgetPrivate::deleteSysExtra() -+{ -+// debugprint(1, "Unimplemented: QWidgetPrivate::deleteSysExtra\n"); -+} -+ -+void QWidgetPrivate::deleteTLSysExtra() -+{ -+ //debugprint(1, "Unimplemented: QWidgetPrivate::deleteTLSysExtra\n"); -+} -+ -+void QWidgetPrivate::createSysExtra() -+{ -+// debugprint(1, "Unimplemented: QWidgetPrivate::createSysExtra\n"); -+} -+ -+void QWidgetPrivate::createTLSysExtra() -+{ -+// debugprint(1, "Unimplemented: QWidgetPrivate::createTLSysExtra\n"); -+} -+ -+void QWidgetPrivate::setWindowIconText_sys(const QString&) -+{ -+// debugprint(1, "Unimplemented: QWidgetPrivate::setWindowIconText_sys \n"); -+} -+ -+void QWidgetPrivate::scroll_sys(int,int, const QRect& r) -+{ -+// debugprint(1, "Reimplemented: QWidgetPrivate::scroll(int,int,const QRect&\n"); -+ Q_Q(QWidget); -+ q->update(r); -+} -+ -+void QWidgetPrivate::scroll_sys(int, int) -+{ -+// debugprint(1, "Reimplemented: QWidgetPrivate::scroll(int,int)\n"); -+ Q_Q(QWidget); -+ q->update(); -+} -+ -+void QWidgetPrivate::updateFrameStrut() -+{ -+// debugprint(5, "Reimplemented: QWidgetPrivate::updateFrameStrut\n"); -+ QTLWExtra* top = this->topData(); -+ if(nativeView->LockLooper()) { -+ BRect frame = nativeView->Bounds(); -+ top->frameStrut.setCoords(frame.left, frame.top, frame.right, frame.bottom); -+ nativeView->UnlockLooper(); -+ } -+ data.fstrut_dirty = false; -+} -+ -+void QWidgetPrivate::setFocus_sys() -+{ -+} -+ -+QWindowSurface *QWidgetPrivate::createDefaultWindowSurface_sys() -+{ -+ Q_Q(QWidget); -+ return new QRasterWindowSurface(q); -+} -+ -+void QWidgetPrivate::setMask_sys(const QRegion ®ion) -+{ -+ Q_UNUSED(region); -+// debugprint(1, "Unimplemented: QWidgetPrivate::setMask_sys()\n"); -+} -+ -+int QWidget::metric(PaintDeviceMetric m) const -+{ -+//qDebug() << "QWidget::metric("<< m <<")"; -+ int val = 0; -+ if (m == PdmWidth) { -+ val = data->crect.width(); -+ } else if (m == PdmHeight) { -+ val = data->crect.height(); -+ } else { -+ switch (m) { -+ case PdmDpiX: -+ case PdmPhysicalDpiX: -+ case PdmDpiY: -+ case PdmPhysicalDpiY: -+ val = 72; -+ break; -+ case PdmWidthMM: -+ case PdmHeightMM: -+ case PdmNumColors: -+ case PdmDepth: -+// qWarning("QWidget::metric Unknown metric type requested\n"); -+ break; -+ default: -+ val = 0; -+ qWarning("QWidget::metric: Invalid metric command"); -+ } -+ } -+ -+ return val; -+} -+ -+QPaintEngine *QWidget::paintEngine() const -+{ -+ return 0; -+} -+ -+QPoint QWidget::mapToGlobal(const QPoint &pos) const -+{ -+ //Q_D(QWidget); -+// qDebug()<<"QWidget::mapToGlobal() pos:"<crect.topLeft(); -+ //cannot trust that !isWindow() implies parentWidget() before create -+ return (isWindow() || !parentWidget()) ? p : parentWidget()->mapToGlobal(p); -+ } -+ -+ if (nativeView()->LockLooper()) -+ { -+ BPoint p = nativeView()->ConvertToScreen(BPoint(pos.x(),pos.y())); -+ nativeView()->UnlockLooper(); -+ return QPoint(p.x,p.y); -+ } -+ return QPoint(); // ??? -+} -+ -+QPoint QWidget::mapFromGlobal(const QPoint &pos) const -+{ -+// qDebug()<<"QWidget::mapFromGlobal() pos:"<mapFromGlobal(pos); -+ return p - data->crect.topLeft(); -+ } -+ -+ if (nativeView()->LockLooper()) -+ { -+ BPoint p = nativeView()->ConvertFromScreen(BPoint(pos.x(),pos.y())); -+ nativeView()->UnlockLooper(); -+ return QPoint(p.x,p.y); -+ } -+ return QPoint(); // ??? -+} -+ -+void QWidget::activateWindow() -+{ -+ Q_D(QWidget); -+ if (isWindow()) { -+ d->nativeView->Window()->Activate(); -+ } -+} -+ -+void QWidget::setWindowState(Qt::WindowStates newstate) -+{ -+// qDebug() << "QWidgetPrivate::setWindowState() "<< this<<" "<topData()->normalGeometry = geometry(); -+ if (isVisible() && !(newstate & Qt::WindowMinimized)) { -+//TODO: Qt::WindowMaximized not supported yet. -+ d->nativeView->Window()->Show(); -+ -+ if (!(newstate & Qt::WindowFullScreen)) { -+ QRect r = d->topData()->normalGeometry; -+ if (!(newstate & Qt::WindowMaximized) && r.width() >= 0) { -+ if (pos() != r.topLeft() || size() !=r.size()) { -+ d->topData()->normalGeometry = QRect(0,0,-1,-1); -+ setGeometry(r); -+ } -+ } -+ } else { -+ d->updateFrameStrut(); -+ } -+ } -+ } -+ -+ // Qt::WindowFullScreen -+ if ((oldstate & Qt::WindowFullScreen) != (newstate & Qt::WindowFullScreen)) { -+ if (newstate & Qt::WindowFullScreen) { // save current window flags and geometry and go to FullScreen -+ if (d->topData()->normalGeometry.width() < 0 && !(oldstate & Qt::WindowMaximized)) -+ d->topData()->normalGeometry = geometry(); -+ d->topData()->savedFlags = d->data.window_flags; -+ -+ -+ d->data.window_flags |= Qt::SplashScreen; -+ d->nativeWindow->updateWindowFlags(d->data.window_flags); -+ -+ QRect r = qApp->desktop()->screenGeometry(this); -+ d->nativeView->Window()->Zoom(BPoint(r.left(),r.top()),r.width(),r.height()); -+ d->updateFrameStrut(); -+ } -+ else { //back from FullScreen (to saved flags and geomerty) -+ d->data.window_flags = d->topData()->savedFlags; -+ d->nativeWindow->updateWindowFlags(d->data.window_flags); -+ -+ if (!(newstate & Qt::WindowMaximized)) { -+ QRect r = d->topData()->normalGeometry; -+ d->topData()->normalGeometry = QRect(0,0,-1,-1); -+ if (r.isValid()) -+ setGeometry(r); -+ } -+ d->updateFrameStrut(); -+ } -+ } -+ } -+ -+ //Qt::WindowMinimized -+ if ((oldstate & Qt::WindowMinimized) != (newstate & Qt::WindowMinimized)) { -+ if (isVisible()) -+//TODO: Qt::WindowMinimized state changed... -+ d->nativeView->Window()->Minimize((newstate & Qt::WindowMinimized) ? true : -+ (newstate & Qt::WindowMaximized) ? false : false); -+ } -+ -+ data->window_state = newstate; -+ QWindowStateChangeEvent e(oldstate); -+ QApplication::sendEvent(this, &e); -+} -+ -+void QWidget::grabMouse() -+{ -+ if (mouseGrb) -+ mouseGrb->releaseMouse(); -+ mouseGrb = this; -+} -+ -+void QWidget::grabMouse(const QCursor &cursor) -+{ -+ Q_UNUSED(cursor); -+ if (mouseGrb) -+ mouseGrb->releaseMouse(); -+ mouseGrb = this; -+} -+ -+void QWidget::releaseMouse() -+{ -+ if(mouseGrb == this) { -+ mouseGrb = 0; -+ } -+} -+ -+QWidget *QWidget::mouseGrabber() -+{ -+ return mouseGrb; -+} -+ -+void QWidget::grabKeyboard() -+{ -+ if (keyboardGrb) -+ keyboardGrb->releaseKeyboard(); -+ keyboardGrb = this; -+} -+ -+void QWidget::releaseKeyboard() -+{ -+ if (keyboardGrb == this) { -+ keyboardGrb = 0; -+ } -+} -+ -+QWidget *QWidget::keyboardGrabber() -+{ -+ return keyboardGrb; -+} -+ -+void QWidget::destroy(bool destroyWindow, bool destroySubWindows) -+{ -+ Q_D(QWidget); -+// qDebug() << "Reimplemented: QWidgetPrivate::destroy() "<< this ; -+ if (!isWindow() && parentWidget()) -+ parentWidget()->d_func()->invalidateBuffer(geometry()); -+ d->deactivateWidgetCleanup(); -+ if (testAttribute(Qt::WA_WState_Created)) { -+ setAttribute(Qt::WA_WState_Created, false); -+ QObjectList childList = children(); -+ for (int i = 0; i < childList.size(); ++i) { // destroy all widget children -+ register QObject *obj = childList.at(i); -+ if (obj->isWidgetType()) -+ static_cast(obj)->destroy(destroySubWindows, -+ destroySubWindows); -+ } -+ -+ if (mouseGrb == this) -+ releaseMouse(); -+ -+ if (keyboardGrb == this) -+ releaseKeyboard(); -+ -+// if (testAttribute(Qt::WA_ShowModal)) // just be sure we leave modal -+// QApplicationPrivate::leaveModal(this); -+// else -+ if ((windowType() == Qt::Popup)) -+ qApp->d_func()->closePopup(this); -+ -+ if (isWindow()) { -+ if ((windowType() != Qt::Desktop) && destroyWindow){ -+ BWindow *win = d->nativeView->Window(); -+ -+ if (win->LockLooper()){ -+ for (int i =0;i<=win->CountChildren()-1;i++){ -+ BView *w = win->ChildAt(i); -+ w->RemoveSelf(); -+ delete w; -+ } -+ win->Quit(); -+ } -+ } -+ } else { -+ BWindow *win =d->nativeView->Window(); -+ bool wasLocked = win->Looper()->IsLocked(); -+ if (win && (wasLocked || win->LockLooper()) ){ -+ d->nativeView->RemoveSelf(); -+ if (!wasLocked) -+ win->UnlockLooper(); -+ } -+ delete d->nativeView; -+ } -+ -+ d->nativeView = NULL; -+ d->nativeWindow = NULL; -+ d->setWinId(0); -+ } -+} -+ -+BView* QWidget::nativeView() const -+{ -+ Q_D(const QWidget); -+ return d->nativeView; -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_haiku.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_haiku.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_haiku.h 2011-06-13 22:06:43.334495744 +0000 -@@ -0,0 +1,105 @@ -+#ifndef QWIDGET_HAIKU_H -+#define QWIDGET_HAIKU_H -+ -+#include -+#include -+#include -+#include "qevent.h" -+ -+#include "qwidget.h" -+//#include "qwidget_p.h" -+//#include "qtextcodec.h" -+ -+//#include -+//#include "qevent_p.h" -+//#include "private/qwindowsurface_raster_p.h" -+//#include "qapplication.h" -+//#include "qfileinfo.h" -+ -+ -+QT_BEGIN_HEADER -+ -+QT_BEGIN_NAMESPACE -+ -+QT_MODULE(Gui) -+ -+class QWidgetPrivate; -+ -+class QtHaikuView : public QObject, public BView -+{ -+ Q_OBJECT -+ -+public: -+ QtHaikuView(BRect frame, const char *name, uint32 resizingMode, uint32 flags); -+ ~QtHaikuView(); -+ -+ virtual void MessageReceived(BMessage* msg); -+ virtual void FrameResized(float width, float height); -+ virtual void MouseDown(BPoint point); -+ virtual void MouseUp(BPoint point); -+ virtual void MouseMoved(BPoint where, uint32 code, const BMessage *message); -+ virtual void Hide(); -+ virtual void Show(); -+ virtual void Draw(BRect rect); -+ -+ inline void setWidget(QWidget *widget, QWidgetPrivate *widgetPrivate); -+ void sendWheelEvent(int delta_x, int delta_y); -+ -+ Qt::KeyboardModifiers translateModifiers(uint32 s); -+ bool isVisible; -+Q_SIGNALS: -+ void sendHaikuEvent(QObject *receiver, QEvent *event); -+ void sendUpdateWidget(); -+ void sendUpdateWidgetRect(QRect r); -+ void sendResizeWidget(int width, int height); -+ void sendMoveWidget(int x, int y); -+ void sendSetActiveWindow(QWidget *widget); -+ void sendCloseWindow(QWidget *widget); -+ -+private: -+ friend class QtHaikuWindow; -+ Qt::MouseButton translateMouseButton(uint32 s); -+ Qt::MouseButtons translateMouseButtons(uint32 s); -+ -+ QWidget* fWidget; -+ QWidgetPrivate* fWidgetPrivate; -+ -+ int last_down_buttons; -+ int last_clicked_buttons; -+ int last_mouse_x; -+ int last_mouse_y; -+ -+ bigtime_t last_click_time; -+ bigtime_t last_draw_event; -+}; -+ -+class QtHaikuWindow : public BWindow -+{ -+public: -+ QtHaikuWindow(BRect frame, const char *title, window_look look, window_feel feel, uint32 flags); -+ ~QtHaikuWindow(); -+ -+ void FrameResized(float width, float height); -+ void FrameMoved(BPoint point); -+ void MessageReceived(BMessage* msg); -+ virtual void DispatchMessage(BMessage *, BHandler *); -+ virtual void WindowActivated(bool active); -+ virtual bool QuitRequested(); -+ virtual void Hide(); -+ virtual void Show(); -+ -+ inline void setView(QtHaikuView *view); -+ -+ void sendKeyEvent(QEvent::Type type, BMessage *msg); -+ bool isVisible; -+ bool inDestroy; -+ void updateWindowFlags(Qt::WindowFlags f); -+private: -+ QtHaikuView *fView; -+}; -+ -+QT_END_NAMESPACE -+ -+QT_END_HEADER -+ -+#endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwidget_p.h 2011-03-30 05:19:04.055836672 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwidget_p.h 2011-06-13 22:06:43.337117184 +0000 -@@ -877,6 +877,9 @@ public: - void s60UpdateIsOpaque(); - void reparentChildren(); - void registerTouchWindow(); -+#elif defined(Q_WS_HAIKU) // <--------------------------------------------------------- HAIKU -+ QtHaikuWindow *nativeWindow; -+ QtHaikuView *nativeView; - #endif - - }; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwindowdefs.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwindowdefs.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwindowdefs.h 2011-03-30 05:19:04.046923776 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwindowdefs.h 2011-06-13 22:06:43.338952192 +0000 -@@ -110,6 +110,10 @@ typedef long WId; - #include - #endif // Q_WS_WIN - -+#if defined(Q_WS_HAIKU) -+#include -+#endif -+ - #if defined(Q_WS_X11) - - typedef struct _XDisplay Display; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwindowdefs_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwindowdefs_haiku.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/kernel/qwindowdefs_haiku.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/kernel/qwindowdefs_haiku.h 2011-06-13 22:06:43.341311488 +0000 -@@ -0,0 +1,72 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: Qt Software Information (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial Usage -+** Licensees holding valid Qt Commercial licenses may use this file in -+** accordance with the Qt Commercial License Agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Nokia. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain -+** additional rights. These rights are described in the Nokia Qt LGPL -+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -+** package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** If you are unsure which license is appropriate for your use, please -+** contact the sales department at qt-sales@nokia.com. -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QWINDOWDEFS_HAIKU_H -+#define QWINDOWDEFS_HAIKU_H -+ -+#include -+ -+QT_BEGIN_HEADER -+ -+QT_BEGIN_NAMESPACE -+ -+QT_MODULE(Gui) -+ -+QT_END_NAMESPACE -+#ifndef BUILD_WEBKIT -+#include -+#include -+#include -+#include -+#include -+#include -+#else -+class BView; -+#endif -+typedef BView *WId; -+ -+QT_BEGIN_NAMESPACE -+//? -+QT_END_NAMESPACE -+ -+QT_END_HEADER -+ -+#endif // QWINDOWDEFS_HAIKU_H -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/painting.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/painting.pri ---- qt-everywhere-opensource-src-4.7.3/src/gui/painting/painting.pri 2011-03-30 05:19:07.043515904 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/painting.pri 2011-06-13 22:06:43.343408640 +0000 -@@ -164,7 +164,7 @@ unix:!mac:!symbian { - painting/qprinterinfo_unix.cpp - } - --win32|x11|mac|embedded|symbian { -+win32|x11|mac|embedded|symbian|haiku { - SOURCES += painting/qbackingstore.cpp - HEADERS += painting/qbackingstore_p.h - } -@@ -248,6 +248,12 @@ symbian { - QMAKE_CXXFLAGS.ARMCC *= -O3 - } - -+haiku { -+ SOURCES += \ -+# painting/qpaintdevice_haiku.cpp \ -+ painting/qcolormap_haiku.cpp -+} -+ - NEON_SOURCES += painting/qdrawhelper_neon.cpp - NEON_HEADERS += painting/qdrawhelper_neon_p.h - NEON_ASM += ../3rdparty/pixman/pixman-arm-neon-asm.S painting/qdrawhelper_neon_asm.S -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qcolormap_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qcolormap_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qcolormap_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qcolormap_haiku.cpp 2011-06-13 22:06:43.345767936 +0000 -@@ -0,0 +1,189 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: Qt Software Information (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial Usage -+** Licensees holding valid Qt Commercial licenses may use this file in -+** accordance with the Qt Commercial License Agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Nokia. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain -+** additional rights. These rights are described in the Nokia Qt LGPL -+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -+** package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** If you are unsure which license is appropriate for your use, please -+** contact the sales department at qt-sales@nokia.com. -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include "qcolormap.h" -+ -+#include "qapplication.h" -+#include "qdebug.h" -+#include "qdesktopwidget.h" -+#include "qvarlengtharray.h" -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+class QColormapPrivate -+{ -+public: -+ QColormapPrivate() -+ : ref(1), mode(QColormap::Direct), depth(0), -+ defaultColormap(true), -+ defaultVisual(true), -+ r_max(0), g_max(0), b_max(0), -+ r_shift(0), g_shift(0), b_shift(0) -+ {} -+ -+ QAtomicInt ref; -+ -+ QColormap::Mode mode; -+ int depth; -+ -+// Colormap colormap; -+ bool defaultColormap; -+ -+// Visual *visual; -+ bool defaultVisual; -+ -+ int r_max; -+ int g_max; -+ int b_max; -+ -+ uint r_shift; -+ uint g_shift; -+ uint b_shift; -+ -+ QVector colors; -+ QVector pixels; -+}; -+ -+ -+static QColormap **cmaps = 0; -+ -+/*! \internal -+*/ -+void QColormap::initialize() -+{ -+} -+ -+/*! \internal -+*/ -+void QColormap::cleanup() -+{ -+ // Display *display = QX11Info::display(); -+ const int screens = 0;//ScreenCount(display); -+ -+ for (int i = 0; i < screens; ++i) -+ delete cmaps[i]; -+ -+ delete [] cmaps; -+ cmaps = 0; -+} -+ -+QColormap QColormap::instance(int screen) -+{ -+ //if (screen == -1) -+ // screen = QX11Info::appScreen(); -+ QColormap cm; -+ return cm;//*cmaps[screen]; -+} -+ -+/*! \internal -+ Constructs a new colormap. -+*/ -+QColormap::QColormap() -+ : d(new QColormapPrivate) -+{} -+ -+QColormap::QColormap(const QColormap &colormap) -+ :d (colormap.d) -+{ d->ref.ref(); } -+ -+QColormap::~QColormap() -+{ -+ if (!d->ref.deref()) { -+ if (!d->defaultColormap) {} -+// XFreeColormap(QX11Info::display(), d->colormap); -+ delete d; -+ } -+} -+ -+QColormap::Mode QColormap::mode() const -+{ return d->mode; } -+ -+int QColormap::depth() const -+{ return d->depth; } -+ -+int QColormap::size() const -+{ -+ return (d->mode == Gray -+ ? d->r_max -+ : (d->mode == Indexed -+ ? d->r_max * d->g_max * d->b_max -+ : -1)); -+} -+ -+uint QColormap::pixel(const QColor &color) const -+{ -+ const QColor c = color.toRgb(); -+ const uint r = (c.ct.argb.red * d->r_max) >> 16; -+ const uint g = (c.ct.argb.green * d->g_max) >> 16; -+ const uint b = (c.ct.argb.blue * d->b_max) >> 16; -+ if (d->mode != Direct) { -+ if (d->mode == Gray) -+ return d->pixels.at((r * 30 + g * 59 + b * 11) / 100); -+ return d->pixels.at(r * d->g_max * d->b_max + g * d->b_max + b); -+ } -+ return (r << d->r_shift) + (g << d->g_shift) + (b << d->b_shift); -+} -+ -+const QColor QColormap::colorAt(uint pixel) const -+{ -+ if (d->mode != Direct) { -+ Q_ASSERT(pixel <= (uint)d->colors.size()); -+ return d->colors.at(pixel); -+ } -+ -+ //const int r = (((pixel & d->visual->red_mask) >> d->r_shift) << 8) / d->r_max; -+ //const int g = (((pixel & d->visual->green_mask) >> d->g_shift) << 8) / d->g_max; -+ //const int b = (((pixel & d->visual->blue_mask) >> d->b_shift) << 8) / d->b_max; -+ return QColor(0, 0, 0); -+} -+ -+const QVector QColormap::colormap() const -+{ return d->colors; } -+ -+QColormap &QColormap::operator=(const QColormap &colormap) -+{ -+ qAtomicAssign(d, colormap.d); -+ return *this; -+} -+ -+QT_END_NAMESPACE -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qgraphicssystem.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qgraphicssystem.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qgraphicssystem.cpp 2011-03-30 05:19:07.046661632 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qgraphicssystem.cpp 2011-06-13 22:06:43.346816512 +0000 -@@ -44,7 +44,7 @@ - #ifdef Q_WS_X11 - # include - #endif --#if defined(Q_WS_WIN) -+#if defined(Q_WS_WIN) || defined(Q_WS_HAIKU) - # include - #endif - #ifdef Q_WS_MAC -@@ -72,7 +72,9 @@ QPixmapData *QGraphicsSystem::createDefa - #elif defined(Q_WS_MAC) - return new QMacPixmapData(type); - #elif defined(Q_OS_SYMBIAN) -- return new QS60PixmapData(type); -+ return new QS60PixmapData(type); -+#elif defined(Q_WS_HAIKU) -+ return new QRasterPixmapData(type); - #elif !defined(Q_WS_QWS) - #error QGraphicsSystem::createDefaultPixmapData() not implemented - #endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qpaintengine_raster.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qpaintengine_raster.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qpaintengine_raster.cpp 2011-03-30 05:19:07.039583744 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qpaintengine_raster.cpp 2011-06-13 22:06:43.351010816 +0000 -@@ -96,6 +96,8 @@ - # include - #elif defined(Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE) - # include -+#elif defined(Q_WS_HAIKU) -+# include - #endif - - #if defined(Q_WS_WIN64) -@@ -3408,7 +3410,7 @@ void QRasterPaintEngine::drawTextItem(co - } - #endif // Q_WS_QWS - --#if (defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)) && !defined(QT_NO_FREETYPE) -+#if (defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU)) && !defined(QT_NO_FREETYPE) - - #if defined(Q_WS_QWS) && !defined(QT_NO_QWS_QPF2) - if (fontEngine->type() == QFontEngine::QPF2) { -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qregion.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qregion.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qregion.cpp 2011-03-30 05:19:07.052953088 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qregion.cpp 2011-06-13 22:06:43.354156544 +0000 -@@ -1620,7 +1620,7 @@ QT_END_INCLUDE_NAMESPACE - QT_BEGIN_INCLUDE_NAMESPACE - # include "qregion_win.cpp" - QT_END_INCLUDE_NAMESPACE --#elif defined(Q_WS_QWS) -+#elif defined(Q_WS_QWS) || defined(Q_WS_HAIKU) - static QRegionPrivate qrp; - QRegion::QRegionData QRegion::shared_empty = {Q_BASIC_ATOMIC_INITIALIZER(1), &qrp}; - #endif -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qregion.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qregion.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qregion.h 2011-03-30 05:19:07.041156608 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qregion.h 2011-06-13 22:06:43.355729408 +0000 -@@ -59,7 +59,7 @@ QT_MODULE(Gui) - template class QVector; - class QVariant; - --#if defined(Q_WS_QWS) || defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) -+#if defined(Q_WS_QWS) || defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - struct QRegionPrivate; - #endif - -@@ -203,7 +203,7 @@ private: - #elif defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA) - mutable RgnHandle unused; // Here for binary compatibility reasons. ### Qt 5 remove. - #endif --#if defined(Q_WS_QWS) || defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) -+#if defined(Q_WS_QWS) || defined(Q_WS_X11) || defined(Q_WS_MAC) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - QRegionPrivate *qt_rgn; - #endif - }; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/painting/qwindowsurface_raster.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qwindowsurface_raster.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/painting/qwindowsurface_raster.cpp 2011-03-30 05:19:07.048496640 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/painting/qwindowsurface_raster.cpp 2011-06-13 22:06:43.357302272 +0000 -@@ -66,6 +66,10 @@ - #include - #endif - -+#ifdef Q_WS_HAIKU -+#include -+#endif -+ - QT_BEGIN_NAMESPACE - - class QRasterWindowSurfacePrivate -@@ -298,6 +302,24 @@ void QRasterWindowSurface::flush(QWidget - #endif - #endif // Q_WS_MAC - -+#ifdef Q_WS_HAIKU -+ // d->image is the image to be painted -+ // widget is the widget to be painted on -+ BView *view = widget->nativeView(); -+ BLooper* looper = view->Looper(); -+ -+ if (looper->IsLocked()) -+ return; -+ if(view->LockLooper()) { -+ QRect r = rgn.boundingRect(); -+ BRect dst_region = BRect(r.x(), r.y(), r.x()+r.width(), r.y()+r.height()); -+ BRect src_region = dst_region; -+ src_region.OffsetBy(offset.x(),offset.y()); -+ view->DrawBitmap(d->image->bitmap, src_region, dst_region); -+ view->UnlockLooper(); -+ } -+#endif -+ - #ifdef Q_OS_SYMBIAN - Q_UNUSED(widget); - Q_UNUSED(rgn); -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle.cpp 2011-06-13 22:06:43.365428736 +0000 -@@ -0,0 +1,3928 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: Qt Software Information (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial Usage -+** Licensees holding valid Qt Commercial licenses may use this file in -+** accordance with the Qt Commercial License Agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Nokia. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain -+** additional rights. These rights are described in the Nokia Qt LGPL -+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -+** package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** If you are unsure which license is appropriate for your use, please -+** contact the sales department at qt-sales@nokia.com. -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include "qhaikustyle.h" -+#include "qhaikustyle_p.h" -+ -+#if !defined(QT_NO_STYLE_HAIKU) || defined(QT_PLUGIN) -+ -+#include "qwindowsstyle_p.h" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define CL_MAX(a,b) (a)>(b) ? (a):(b) // ### qMin/qMax does not work for vc6 -+#define CL_MIN(a,b) (a)<(b) ? (a):(b) // remove this when it is working -+ -+QT_BEGIN_NAMESPACE -+ -+static const bool UsePixmapCache = true; -+ -+enum Direction { -+ TopDown, -+ FromLeft, -+ BottomUp, -+ FromRight -+}; -+ -+// from windows style -+static const int windowsItemFrame = 2; // menu item frame width -+static const int windowsSepHeight = 6; // separator item height -+static const int windowsItemHMargin = 3; // menu item hor text margin -+static const int windowsItemVMargin = 8; // menu item ver text margin -+static const int windowsArrowHMargin = 6; // arrow horizontal margin -+static const int windowsTabSpacing = 12; // space between text and tab -+static const int windowsCheckMarkHMargin = 2; // horiz. margins of check mark -+static const int windowsRightBorder = 15; // right border on windows -+static const int windowsCheckMarkWidth = 12; // checkmarks width on windows -+ -+/* XPM */ -+static const char * const dock_widget_close_xpm[] = { -+ "11 13 7 1", -+ " c None", -+ ". c #D5CFCB", -+ "+ c #8F8B88", -+ "@ c #6C6A67", -+ "# c #ABA6A3", -+ "$ c #B5B0AC", -+ "% c #A4A09D", -+ " ", -+ " +@@@@@@@+ ", -+ "+# #+", -+ "@ $@ @$ @", -+ "@ @@@ @@@ @", -+ "@ @@@@@ @", -+ "@ @@@ @", -+ "@ @@@@@ @", -+ "@ @@@ @@@ @", -+ "@ $@ @$ @", -+ "+% #+", -+ " +@@@@@@@+ ", -+ " "}; -+ -+ -+static const char * const dock_widget_restore_xpm[] = { -+ "11 13 7 1", -+ " c None", -+ ". c #D5CFCB", -+ "+ c #8F8B88", -+ "@ c #6C6A67", -+ "# c #ABA6A3", -+ "$ c #B5B0AC", -+ "% c #A4A09D", -+ " ", -+ " +@@@@@@@+ ", -+ "+# #+", -+ "@ #@@@# @", -+ "@ @ @ @", -+ "@ #@@@# @ @", -+ "@ @ @ @ @", -+ "@ @ @@@ @", -+ "@ @ @ @", -+ "@ #@@@# @", -+ "+% #+", -+ " +@@@@@@@+ ", -+ " "}; -+ -+static const char * const workspace_minimize[] = { -+ "11 13 7 1", -+ " c None", -+ ". c #D5CFCB", -+ "+ c #8F8B88", -+ "@ c #6C6A67", -+ "# c #ABA6A3", -+ "$ c #B5B0AC", -+ "% c #A4A09D", -+ " ", -+ " +@@@@@@@+ ", -+ "+# #+", -+ "@ @", -+ "@ @", -+ "@ @", -+ "@ @@@@@@@ @", -+ "@ @@@@@@@ @", -+ "@ @", -+ "@ @", -+ "+% #+", -+ " +@@@@@@@+ ", -+ " "}; -+ -+ -+static const char * const qt_titlebar_context_help[] = { -+ "10 10 3 1", -+ " c None", -+ "# c #000000", -+ "+ c #444444", -+ " +####+ ", -+ " ### ### ", -+ " ## ## ", -+ " +##+ ", -+ " +## ", -+ " ## ", -+ " ## ", -+ " ", -+ " ## ", -+ " ## "}; -+ -+ -+static const char * const qt_scrollbar_button_arrow_left[] = { -+"6 7 18 1", -+"d c #303030", -+"g c #333333", -+"c c #3d3d3d", -+"j c #4d4d4d", -+"l c #626262", -+"h c #656565", -+"p c #8b8b8b", -+"a c #919191", -+"k c #9a9a9a", -+"f c #9e9e9e", -+"n c #9f9f9f", -+"e c #a5a5a5", -+"m c #b3b3b3", -+"i c #b4b4b4", -+"b c #bababa", -+"o c #c6c6c6", -+"# c #cfcfcf", -+". c None", -+"...#a.", -+"..bcde", -+".fgdh.", -+"iddj..", -+".kgdl.", -+"..mcdn", -+"...op."}; -+ -+static const char * const qt_scrollbar_button_arrow_right[] = { -+"6 7 19 1", -+"c c #303030", -+"g c #333333", -+"n c #3d3d3d", -+"d c #3e3e3e", -+"i c #4d4d4d", -+"k c #626262", -+"f c #646464", -+"p c #8b8b8b", -+"# c #919191", -+"l c #9b9b9b", -+"h c #9e9e9e", -+"m c #9f9f9f", -+"b c #a5a5a5", -+"o c #b3b3b3", -+"j c #b4b4b4", -+"e c #bababa", -+"q c #c6c6c6", -+"a c #cfcfcf", -+". c None", -+".#a...", -+"bcde..", -+".fcgh.", -+"..iccj", -+".kcgl.", -+"mcno..", -+".pq..."}; -+ -+static const char * const qt_scrollbar_button_arrow_up[] = { -+"7 6 17 1", -+"b c #303030", -+"e c #333333", -+"h c #3d3d3d", -+"i c #4c4c4c", -+"m c #626262", -+"l c #656565", -+"n c #8a8a8a", -+"k c #919191", -+"c c #9a9a9a", -+"a c #9e9e9e", -+"o c #a4a4a4", -+"# c #afafaf", -+"f c #b3b3b3", -+"d c #b9b9b9", -+"j c #c5c5c5", -+"g c #cecece", -+". c None", -+"...#...", -+"..abc..", -+".debef.", -+"ghbibhj", -+"kbl.mbn", -+".o...a."}; -+ -+static const char * const qt_scrollbar_button_arrow_down[] = { -+"7 6 17 1", -+"c c #303030", -+"l c #333333", -+"h c #3d3d3d", -+"i c #4c4c4c", -+"e c #626262", -+"d c #656565", -+"f c #8a8a8a", -+"b c #919191", -+"n c #9a9a9a", -+"a c #9e9e9e", -+"# c #a4a4a4", -+"o c #afafaf", -+"m c #b3b3b3", -+"k c #b9b9b9", -+"j c #c5c5c5", -+"g c #cecece", -+". c None", -+".#...a.", -+"bcd.ecf", -+"ghcichj", -+".klclm.", -+"..acn..", -+"...o..."}; -+ -+static const char * const qt_scrollbar_buttons[] = { -+"15 15 31 1", -+" c None", -+"n c #303030", -+"q c #333333", -+"t c #3d3d3d", -+"u c #4c4c4c", -+"y c #626262", -+"x c #656565", -+"z c #8a8a8a", -+"w c #919191", -+". c #989898", -+"o c #9a9a9a", -+"m c #9e9e9e", -+"A c #a4a4a4", -+"l c #afafaf", -+"r c #b3b3b3", -+"p c #b9b9b9", -+"v c #c5c5c5", -+"k c #c6c6c6", -+"s c #cecece", -+"B c #d4d4d4", -+"j c #dbdbdb", -+"i c #dcdcdc", -+"h c #dedede", -+"g c #dfdfdf", -+"f c #e0e0e0", -+"e c #e6e6e6", -+"a c #e7e7e7", -+"d c #e8e8e8", -+"c c #e9e9e9", -+"b c #eaeaea", -+"# c #f7f7f7", -+"...............", -+".############a.", -+".# k.", -+".# k.", -+".# k.", -+".# k.", -+".# k.", -+".# k.", -+".# k.", -+".# k.", -+".# k.", -+".# k.", -+".# k.", -+".akkkkkkkkkkkk.", -+"..............."}; -+ -+ -+static const char * const qt_haiku_menuitem_checkbox_checked[] = { -+"9 9 31 1", -+"d c #000000", -+"t c #020202", -+"m c #060606", -+"e c #0b0b0b", -+"w c #0e0e0e", -+"j c #191919", -+"z c #1a1a1a", -+"s c #2b2b2b", -+"p c #2d2d2d", -+"# c #4d4d4d", -+"r c #555555", -+"o c #636363", -+"x c #646464", -+"a c #707070", -+"k c #808080", -+"y c #828282", -+"h c #838383", -+"c c #9a9a9a", -+"B c #9c9c9c", -+"g c #a7a7a7", -+"u c #b5b5b5", -+"l c #bfbfbf", -+"n c #c0c0c0", -+"f c #c8c8c8", -+"C c #c9c9c9", -+"v c #cdcdcd", -+"i c #d5d5d5", -+"A c #d6d6d6", -+"b c #d9d9d9", -+"q c #dedede", -+". c None", -+"......#ab", -+".....cdef", -+".gh.ijdk.", -+"ldmnodpq.", -+".rdsttu..", -+".vwddx...", -+"..ydzA...", -+"..qsB....", -+"...C....."}; -+ -+class TemporarySurface -+{ -+public: -+ TemporarySurface(const BRect& bounds) -+ : mBitmap(bounds, B_BITMAP_ACCEPTS_VIEWS, B_RGBA32) -+ , mView(bounds, "Qt temporary surface", 0, 0) -+ , mImage(reinterpret_cast(mBitmap.Bits()), -+ bounds.IntegerWidth() + 1, bounds.IntegerHeight() + 1, -+ mBitmap.BytesPerRow(), QImage::Format_ARGB32) -+ { -+ mBitmap.Lock(); -+ mBitmap.AddChild(&mView); -+ } -+ -+ ~TemporarySurface() -+ { -+ mBitmap.RemoveChild(&mView); -+ mBitmap.Unlock(); -+ } -+ -+ BView* view() -+ { -+ return &mView; -+ } -+ -+ QImage& image() -+ { -+ if(mView.Window()) -+ mView.Sync(); -+ return mImage; -+ } -+ -+private: -+ BBitmap mBitmap; -+ BView mView; -+ QImage mImage; -+}; -+ -+ -+static QColor mkQColor(rgb_color rgb) -+{ -+ return QColor(rgb.red, rgb.green, rgb.blue); -+} -+ -+static void qt_haiku_draw_button(QPainter *painter, const QRect &qrect, bool def, bool flat, bool pushed, bool focus, bool enabled) -+{ -+ QRect rect = qrect; -+ if (be_control_look != NULL) { -+ // TODO: If this button is embedded within a different color background, it would be -+ // nice to tell this function so the frame can be smoothly blended into the background. -+ rgb_color background = ui_color(B_PANEL_BACKGROUND_COLOR); -+ rgb_color base = background; -+ uint32 flags = 0; -+ if (pushed) -+ flags |= BControlLook::B_ACTIVATED; -+ if (focus) -+ flags |= BControlLook::B_FOCUSED; -+ if (def) { -+ flags |= BControlLook::B_DEFAULT_BUTTON; -+ rect = rect.adjusted(-2,-2,2,2); -+ } -+ if (!enabled) -+ flags |= BControlLook::B_DISABLED; -+ -+ BRect bRect(0.0f, 0.0f, rect.width() - 1, rect.height() - 1); -+ -+ TemporarySurface surface(bRect); -+ -+ be_control_look->DrawButtonFrame(surface.view(), bRect, bRect, base, background, flags); -+ be_control_look->DrawButtonBackground(surface.view(), bRect, bRect, base, flags); -+ -+ painter->drawImage(rect, surface.image()); -+ -+ return; -+ } -+} -+ -+static void qt_haiku_draw_gradient(QPainter *painter, const QRect &rect, const QColor &gradientStart, -+ const QColor &gradientStop, Direction direction = TopDown, QBrush bgBrush = QBrush()) -+{ -+ int x = rect.center().x(); -+ int y = rect.center().y(); -+ QLinearGradient *gradient; -+ switch(direction) { -+ case FromLeft: -+ gradient = new QLinearGradient(rect.left(), y, rect.right(), y); -+ break; -+ case FromRight: -+ gradient = new QLinearGradient(rect.right(), y, rect.left(), y); -+ break; -+ case BottomUp: -+ gradient = new QLinearGradient(x, rect.bottom(), x, rect.top()); -+ break; -+ case TopDown: -+ default: -+ gradient = new QLinearGradient(x, rect.top(), x, rect.bottom()); -+ break; -+ } -+ if (bgBrush.gradient()) -+ gradient->setStops(bgBrush.gradient()->stops()); -+ else { -+ gradient->setColorAt(0, gradientStart); -+ gradient->setColorAt(1, gradientStop); -+ } -+ painter->fillRect(rect, *gradient); -+ delete gradient; -+} -+ -+static QString uniqueName(const QString &key, const QStyleOption *option, const QSize &size) -+{ -+ QString tmp; -+ const QStyleOptionComplex *complexOption = qstyleoption_cast(option); -+ tmp.sprintf("%s-%d-%d-%lld-%dx%d-%d", key.toLatin1().constData(), uint(option->state), -+ complexOption ? uint(complexOption->activeSubControls) : uint(0), -+ option->palette.cacheKey(), size.width(), size.height(), option->direction); -+#ifndef QT_NO_SPINBOX -+ if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast(option)) { -+ tmp.append(QLatin1Char('-')); -+ tmp.append(QString::number(spinBox->buttonSymbols)); -+ tmp.append(QLatin1Char('-')); -+ tmp.append(QString::number(spinBox->stepEnabled)); -+ tmp.append(QLatin1Char('-')); -+ tmp.append(QLatin1Char(spinBox->frame ? '1' : '0')); -+ } -+#endif // QT_NO_SPINBOX -+ return tmp; -+} -+ -+static void qt_haiku_draw_mdibutton(QPainter *painter, const QStyleOptionTitleBar *option, const QRect &tmp, bool hover, bool sunken) -+{ -+ QColor dark; -+ dark.setHsv(option->palette.button().color().hue(), -+ CL_MIN(255, (int)(option->palette.button().color().saturation()*1.9)), -+ CL_MIN(255, (int)(option->palette.button().color().value()*0.7))); -+ -+ QColor highlight = option->palette.highlight().color(); -+ -+ bool active = (option->titleBarState & QStyle::State_Active); -+ QColor titleBarHighlight(255, 255, 255, 60); -+ -+ if (sunken) -+ painter->fillRect(tmp.adjusted(1, 1, -1, -1), option->palette.highlight().color().darker(120)); -+ else if (hover) -+ painter->fillRect(tmp.adjusted(1, 1, -1, -1), QColor(255, 255, 255, 20)); -+ -+ QColor mdiButtonGradientStartColor; -+ QColor mdiButtonGradientStopColor; -+ -+ mdiButtonGradientStartColor = QColor(0, 0, 0, 40); -+ mdiButtonGradientStopColor = QColor(255, 255, 255, 60); -+ -+ if (sunken) -+ titleBarHighlight = highlight.darker(130); -+ -+ QLinearGradient gradient(tmp.center().x(), tmp.top(), tmp.center().x(), tmp.bottom()); -+ gradient.setColorAt(0, mdiButtonGradientStartColor); -+ gradient.setColorAt(1, mdiButtonGradientStopColor); -+ QColor mdiButtonBorderColor(active ? option->palette.highlight().color().darker(180): dark.darker(110)); -+ -+ painter->setPen(QPen(mdiButtonBorderColor, 1)); -+ painter->drawLine(tmp.left() + 2, tmp.top(), tmp.right() - 2, tmp.top()); -+ painter->drawLine(tmp.left() + 2, tmp.bottom(), tmp.right() - 2, tmp.bottom()); -+ painter->drawLine(tmp.left(), tmp.top() + 2, tmp.left(), tmp.bottom() - 2); -+ painter->drawLine(tmp.right(), tmp.top() + 2, tmp.right(), tmp.bottom() - 2); -+ painter->drawPoint(tmp.left() + 1, tmp.top() + 1); -+ painter->drawPoint(tmp.right() - 1, tmp.top() + 1); -+ painter->drawPoint(tmp.left() + 1, tmp.bottom() - 1); -+ painter->drawPoint(tmp.right() - 1, tmp.bottom() - 1); -+ -+ painter->setPen(titleBarHighlight); -+ painter->drawLine(tmp.left() + 2, tmp.top() + 1, tmp.right() - 2, tmp.top() + 1); -+ painter->drawLine(tmp.left() + 1, tmp.top() + 2, tmp.left() + 1, tmp.bottom() - 2); -+ -+ painter->setPen(QPen(gradient, 1)); -+ painter->drawLine(tmp.right() + 1, tmp.top() + 2, tmp.right() + 1, tmp.bottom() - 2); -+ painter->drawPoint(tmp.right() , tmp.top() + 1); -+ -+ painter->drawLine(tmp.left() + 2, tmp.bottom() + 1, tmp.right() - 2, tmp.bottom() + 1); -+ painter->drawPoint(tmp.left() + 1, tmp.bottom()); -+ painter->drawPoint(tmp.right() - 1, tmp.bottom()); -+ painter->drawPoint(tmp.right() , tmp.bottom() - 1); -+} -+ -+/*! -+ \class QHaikuStyle -+ \brief The QHaikuStyle class provides a widget style similar to the -+ Clearlooks style available in GNOME. -+ \since 4.2 -+ -+ The Haiku style provides a look and feel for widgets -+ that closely resembles the Clearlooks style, introduced by Richard -+ Stellingwerff and Daniel Borgmann. -+ -+ \sa {Haiku Style Widget Gallery}, QWindowsXPStyle, QMacStyle, QWindowsStyle, -+ QCDEStyle, QMotifStyle, QPlastiqueStyle -+*/ -+ -+/*! -+ Constructs a QHaikuStyle object. -+*/ -+QHaikuStyle::QHaikuStyle() : QWindowsStyle(*new QHaikuStylePrivate) -+{ -+ setObjectName(QLatin1String("Haiku")); -+} -+ -+/*! -+ \internal -+ -+ Constructs a QHaikuStyle object. -+*/ -+QHaikuStyle::QHaikuStyle(QHaikuStylePrivate &dd) : QWindowsStyle(dd) -+{ -+} -+ -+/*! -+ Destroys the QHaikuStyle object. -+*/ -+QHaikuStyle::~QHaikuStyle() -+{ -+} -+ -+/*! -+ \fn void QHaikuStyle::drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, -+ bool enabled, const QString& text, QPalette::ColorRole textRole) const -+ -+ Draws the given \a text in the specified \a rectangle using the -+ provided \a painter and \a palette. -+ -+ Text is drawn using the painter's pen. If an explicit \a textRole -+ is specified, then the text is drawn using the \a palette's color -+ for the specified role. The \a enabled value indicates whether or -+ not the item is enabled; when reimplementing, this value should -+ influence how the item is drawn. -+ -+ The text is aligned and wrapped according to the specified \a -+ alignment. -+ -+ \sa Qt::Alignment -+*/ -+void QHaikuStyle::drawItemText(QPainter *painter, const QRect &rect, int alignment, const QPalette &pal, -+ bool enabled, const QString& text, QPalette::ColorRole textRole) const -+{ -+ if (text.isEmpty()) -+ return; -+ -+ QPen savedPen = painter->pen(); -+ if (textRole != QPalette::NoRole) { -+ painter->setPen(QPen(pal.brush(textRole), savedPen.widthF())); -+ } -+ if (!enabled) { -+ QPen pen = painter->pen(); -+ painter->setPen(pen); -+ } -+ painter->drawText(rect, alignment, text); -+ painter->setPen(savedPen); -+} -+ -+static QColor mergedColors(const QColor &colorA, const QColor &colorB, int factor = 50) -+{ -+ const int maxFactor = 100; -+ QColor tmp = colorA; -+ tmp.setRed((tmp.red() * factor) / maxFactor + (colorB.red() * (maxFactor - factor)) / maxFactor); -+ tmp.setGreen((tmp.green() * factor) / maxFactor + (colorB.green() * (maxFactor - factor)) / maxFactor); -+ tmp.setBlue((tmp.blue() * factor) / maxFactor + (colorB.blue() * (maxFactor - factor)) / maxFactor); -+ return tmp; -+} -+ -+/*! -+ \reimp -+*/ -+void QHaikuStyle::drawPrimitive(PrimitiveElement elem, -+ const QStyleOption *option, -+ QPainter *painter, const QWidget *widget) const -+{ -+ Q_ASSERT(option); -+ QRect rect = option->rect; -+ int state = option->state; -+ QColor button = option->palette.button().color(); -+ QColor buttonShadow = option->palette.button().color().darker(110); -+ QColor buttonShadowAlpha = buttonShadow; -+ buttonShadowAlpha.setAlpha(128); -+ QColor darkOutline; -+ QColor dark; -+ darkOutline.setHsv(button.hue(), -+ CL_MIN(255, (int)(button.saturation()*3.0)), -+ CL_MIN(255, (int)(button.value()*0.6))); -+ dark.setHsv(button.hue(), -+ CL_MIN(255, (int)(button.saturation()*1.9)), -+ CL_MIN(255, (int)(button.value()*0.7))); -+ QColor tabFrameColor = mergedColors(option->palette.background().color(), -+ dark.lighter(135), 60); -+ -+ switch(elem) { -+#ifndef QT_NO_TABBAR -+ case PE_FrameTabBarBase: -+ if (const QStyleOptionTabBarBase *tbb -+ = qstyleoption_cast(option)) { -+ painter->save(); -+ painter->setPen(QPen(darkOutline.lighter(110), 0)); -+ switch (tbb->shape) { -+ case QTabBar::RoundedNorth: { -+ QRegion region(tbb->rect); -+ region -= tbb->selectedTabRect; -+ painter->drawLine(tbb->rect.topLeft(), tbb->rect.topRight()); -+ painter->setClipRegion(region); -+ painter->setPen(option->palette.light().color()); -+ painter->drawLine(tbb->rect.topLeft() + QPoint(0, 1), -+ tbb->rect.topRight() + QPoint(0, 1)); -+ } -+ break; -+ case QTabBar::RoundedWest: -+ painter->drawLine(tbb->rect.left(), tbb->rect.top(), tbb->rect.left(), tbb->rect.bottom()); -+ break; -+ case QTabBar::RoundedSouth: -+ painter->drawLine(tbb->rect.left(), tbb->rect.bottom(), -+ tbb->rect.right(), tbb->rect.bottom()); -+ break; -+ case QTabBar::RoundedEast: -+ painter->drawLine(tbb->rect.topRight(), tbb->rect.bottomRight()); -+ break; -+ case QTabBar::TriangularNorth: -+ case QTabBar::TriangularEast: -+ case QTabBar::TriangularWest: -+ case QTabBar::TriangularSouth: -+ painter->restore(); -+ QWindowsStyle::drawPrimitive(elem, option, painter, widget); -+ return; -+ } -+ painter->restore(); -+ } -+ return; -+#endif // QT_NO_TABBAR -+ case PE_IndicatorViewItemCheck: -+ { -+ QStyleOptionButton button; -+ button.QStyleOption::operator=(*option); -+ button.state &= ~State_MouseOver; -+ drawPrimitive(PE_IndicatorCheckBox, &button, painter, widget); -+ } -+ return; -+ case PE_IndicatorHeaderArrow: -+ if (const QStyleOptionHeader *header = qstyleoption_cast(option)) { -+ QRect r = header->rect; -+ QImage arrow; -+ if (header->sortIndicator & QStyleOptionHeader::SortUp) -+ arrow = QImage(qt_scrollbar_button_arrow_up); -+ else if (header->sortIndicator & QStyleOptionHeader::SortDown) -+ arrow = QImage(qt_scrollbar_button_arrow_down); -+ if (!arrow.isNull()) { -+ r.setSize(arrow.size()); -+ r.moveCenter(header->rect.center()); -+ arrow.setColor(1, header->palette.foreground().color().rgba()); -+ painter->drawImage(r, arrow); -+ } -+ } -+ break; -+ case PE_IndicatorButtonDropDown: -+ drawPrimitive(PE_PanelButtonCommand, option, painter, widget); -+ break; -+ case PE_IndicatorToolBarSeparator: -+ { -+ QRect rect = option->rect; -+ const int margin = 6; -+ if (option->state & State_Horizontal) { -+ const int offset = rect.width()/2; -+ painter->setPen(QPen(option->palette.background().color().darker(110))); -+ painter->drawLine(rect.bottomLeft().x() + offset, -+ rect.bottomLeft().y() - margin, -+ rect.topLeft().x() + offset, -+ rect.topLeft().y() + margin); -+ painter->setPen(QPen(option->palette.background().color().lighter(110))); -+ painter->drawLine(rect.bottomLeft().x() + offset + 1, -+ rect.bottomLeft().y() - margin, -+ rect.topLeft().x() + offset + 1, -+ rect.topLeft().y() + margin); -+ } else { //Draw vertical separator -+ const int offset = rect.height()/2; -+ painter->setPen(QPen(option->palette.background().color().darker(110))); -+ painter->drawLine(rect.topLeft().x() + margin , -+ rect.topLeft().y() + offset, -+ rect.topRight().x() - margin, -+ rect.topRight().y() + offset); -+ painter->setPen(QPen(option->palette.background().color().lighter(110))); -+ painter->drawLine(rect.topLeft().x() + margin , -+ rect.topLeft().y() + offset + 1, -+ rect.topRight().x() - margin, -+ rect.topRight().y() + offset + 1); -+ } -+ } -+ break; -+ case PE_Frame: -+ painter->save(); -+ painter->setPen(dark.lighter(108)); -+ painter->drawRect(option->rect.adjusted(0, 0, -1, -1)); -+ painter->restore(); -+ break; -+ case PE_FrameMenu: -+ painter->save(); -+ { -+ painter->setPen(QPen(darkOutline, 1)); -+ painter->drawRect(option->rect.adjusted(0, 0, -1, -1)); -+ QColor frameLight = option->palette.background().color().lighter(160); -+ QColor frameShadow = option->palette.background().color().darker(110); -+ -+ //paint beveleffect -+ QRect frame = option->rect.adjusted(1, 1, -1, -1); -+ painter->setPen(frameLight); -+ painter->drawLine(frame.topLeft(), frame.bottomLeft()); -+ painter->drawLine(frame.topLeft(), frame.topRight()); -+ -+ painter->setPen(frameShadow); -+ painter->drawLine(frame.topRight(), frame.bottomRight()); -+ painter->drawLine(frame.bottomLeft(), frame.bottomRight()); -+ } -+ painter->restore(); -+ break; -+ case PE_FrameDockWidget: -+ -+ painter->save(); -+ { -+ QColor softshadow = option->palette.background().color().darker(120); -+ -+ QRect rect= option->rect; -+ painter->setPen(softshadow); -+ painter->drawRect(option->rect.adjusted(0, 0, -1, -1)); -+ painter->setPen(QPen(option->palette.light(), 0)); -+ painter->drawLine(QPoint(rect.left() + 1, rect.top() + 1), QPoint(rect.left() + 1, rect.bottom() - 1)); -+ painter->setPen(QPen(option->palette.background().color().darker(120), 0)); -+ painter->drawLine(QPoint(rect.left() + 1, rect.bottom() - 1), QPoint(rect.right() - 2, rect.bottom() - 1)); -+ painter->drawLine(QPoint(rect.right() - 1, rect.top() + 1), QPoint(rect.right() - 1, rect.bottom() - 1)); -+ -+ } -+ painter->restore(); -+ break; -+ case PE_PanelButtonTool: -+ painter->save(); -+ if ((option->state & State_Enabled || option->state & State_On) || !(option->state & State_AutoRaise)) { -+ QRect rect = option->rect; -+ QPen oldPen = painter->pen(); -+ -+ if (widget && widget->inherits("QDockWidgetTitleButton")) { -+ if (option->state & State_MouseOver) -+ drawPrimitive(PE_PanelButtonCommand, option, painter, widget); -+ } else { -+ drawPrimitive(PE_PanelButtonCommand, option, painter, widget); -+ } -+ } -+ painter->restore(); -+ break; -+ case PE_IndicatorDockWidgetResizeHandle: -+ { -+ QStyleOption dockWidgetHandle = *option; -+ bool horizontal = option->state & State_Horizontal; -+ if (horizontal) -+ dockWidgetHandle.state &= ~State_Horizontal; -+ else -+ dockWidgetHandle.state |= State_Horizontal; -+ drawControl(CE_Splitter, &dockWidgetHandle, painter, widget); -+ } -+ break; -+ case PE_FrameWindow: -+ painter->save(); -+ { -+ QRect rect= option->rect; -+ painter->setPen(QPen(dark.darker(150), 0)); -+ painter->drawRect(option->rect.adjusted(0, 0, -1, -1)); -+ painter->setPen(QPen(option->palette.light(), 0)); -+ painter->drawLine(QPoint(rect.left() + 1, rect.top() + 1), -+ QPoint(rect.left() + 1, rect.bottom() - 1)); -+ painter->setPen(QPen(option->palette.background().color().darker(120), 0)); -+ painter->drawLine(QPoint(rect.left() + 1, rect.bottom() - 1), -+ QPoint(rect.right() - 2, rect.bottom() - 1)); -+ painter->drawLine(QPoint(rect.right() - 1, rect.top() + 1), -+ QPoint(rect.right() - 1, rect.bottom() - 1)); -+ } -+ painter->restore(); -+ break; -+#ifndef QT_NO_LINEDIT -+ case PE_FrameLineEdit: -+ // fall through -+#endif // QT_NO_LINEEDIT -+#ifdef QT3_SUPPORT -+ if (widget && widget->inherits("Q3ToolBar")) { -+ drawPrimitive(PE_Q3Separator, option, painter, widget); -+ break; -+ } -+#endif -+ { -+ QPen oldPen = painter->pen(); -+ if (option->state & State_Enabled) { -+ if(option->state & State_HasFocus) -+ painter->setPen(QPen(mkQColor(ui_color(B_NAVIGATION_BASE_COLOR)), 0)); -+ else -+ painter->setPen(QPen(QColor(129,129,129), 0)); -+ painter->drawRect(rect.adjusted(1, 1, -1, -1)); -+ } else { -+ painter->fillRect(rect, option->palette.background()); -+ painter->setPen(QPen(QColor(129,129,129), 0)); -+ painter->drawRect(rect.adjusted(1, 1, -1, -1)); -+ } -+ } -+ break; -+ case PE_IndicatorCheckBox: -+ painter->save(); -+ if (const QStyleOptionButton *checkbox = qstyleoption_cast(option)) { -+ -+ rect = rect.adjusted(-2, -2, 1, 1); -+ BRect bRect(0.0f, 0.0f, rect.width() - 1, rect.height() - 1); -+ TemporarySurface surface(bRect); -+ rgb_color base = ui_color(B_PANEL_BACKGROUND_COLOR); -+ uint32 flags = 0; -+ -+ if (!(state & State_Enabled)) -+ flags |= BControlLook::B_DISABLED; -+ if (checkbox->state & State_On) -+ flags |= BControlLook::B_ACTIVATED; -+ if (checkbox->state & State_HasFocus) -+ flags |= BControlLook::B_FOCUSED; -+ if (checkbox->state & State_Sunken) -+ flags |= BControlLook::B_CLICKED; -+ if (checkbox->state & State_NoChange) -+ flags |= BControlLook::B_DISABLED | BControlLook::B_ACTIVATED; -+ -+ be_control_look->DrawCheckBox(surface.view(), bRect, bRect, base, flags); -+ painter->drawImage(rect, surface.image()); -+ } -+ painter->restore(); -+ break; -+ case PE_IndicatorRadioButton: -+ painter->save(); -+ { -+ painter->setRenderHint(QPainter::SmoothPixmapTransform); -+ QRect checkRect = rect.adjusted(0, 0, 0, 0); -+ -+ painter->setRenderHint(QPainter::Antialiasing); -+ if (state & State_Sunken) -+ painter->setBrush(mkQColor(ui_color(B_PANEL_BACKGROUND_COLOR))); -+ else -+ painter->setBrush(QColor(255,255,255)); -+ -+ if(state & State_HasFocus) -+ painter->setPen(QPen(mkQColor(ui_color(B_NAVIGATION_BASE_COLOR)), 0)); -+ else -+ painter->setPen(QColor(129,129,129)); -+ painter->drawEllipse(rect); -+ -+ if (state & (State_On )) { -+ painter->setBrush(QColor(27,82,140)); -+ painter->setPen(Qt::NoPen); -+ painter->drawEllipse(rect.adjusted(3, 3, -3, -3)); -+ } -+ } -+ painter->restore(); -+ break; -+ case PE_IndicatorToolBarHandle: -+ painter->save(); -+ if (option->state & State_Horizontal) { -+ for (int i = rect.height()/5; i <= 4*(rect.height()/5) ; ++i) { -+ int y = rect.topLeft().y() + i + 1; -+ int x1 = rect.topLeft().x() + 3; -+ int x2 = rect.topRight().x() - 2; -+ -+ if (i % 2 == 0) -+ painter->setPen(QPen(option->palette.light(), 0)); -+ else -+ painter->setPen(QPen(dark.lighter(110), 0)); -+ painter->drawLine(x1, y, x2, y); -+ } -+ } -+ else { //vertical toolbar -+ for (int i = rect.width()/5; i <= 4*(rect.width()/5) ; ++i) { -+ int x = rect.topLeft().x() + i + 1; -+ int y1 = rect.topLeft().y() + 3; -+ int y2 = rect.topLeft().y() + 5; -+ -+ if (i % 2 == 0) -+ painter->setPen(QPen(option->palette.light(), 0)); -+ else -+ painter->setPen(QPen(dark.lighter(110), 0)); -+ painter->drawLine(x, y1, x, y2); -+ } -+ } -+ painter->restore(); -+ break; -+ case PE_FrameDefaultButton: -+ case PE_FrameFocusRect: -+ if (const QStyleOptionFocusRect *focusFrame = qstyleoption_cast(option)) { -+ if (!(focusFrame->state & State_KeyboardFocusChange)) -+ return; -+ QRect rect = focusFrame->rect; -+ painter->save(); -+ painter->setBackgroundMode(Qt::TransparentMode); -+ painter->setBrush(QBrush(dark.darker(120), Qt::Dense4Pattern)); -+ painter->setBrushOrigin(rect.topLeft()); -+ painter->setPen(Qt::NoPen); -+ painter->drawRect(rect.left(), rect.top(), rect.width(), 1); // Top -+ painter->drawRect(rect.left(), rect.bottom(), rect.width(), 1); // Bottom -+ painter->drawRect(rect.left(), rect.top(), 1, rect.height()); // Left -+ painter->drawRect(rect.right(), rect.top(), 1, rect.height()); // Right -+ painter->restore(); -+ } -+ break; -+ case PE_PanelButtonCommand: -+ painter->save(); -+ { -+ if (const QStyleOptionButton *btn = qstyleoption_cast(option)) { -+ QStyleOptionButton copy = *btn; -+ -+ bool enabled = option->state & State_Enabled; -+ bool pushed = (option->state & State_Sunken) || (option->state & State_On); -+ bool focus = option->state & State_HasFocus; -+ bool flat = btn->features & QStyleOptionFrameV2::Flat; -+ bool def = (btn->features & QStyleOptionButton::DefaultButton) && (btn->state & State_Enabled); -+ -+ qt_haiku_draw_button(painter, option->rect.adjusted(1,1,-1,-1), def, flat, pushed, focus, enabled); -+ } -+ painter->restore(); -+ } -+ break; -+#ifndef QT_NO_TABBAR -+ case PE_FrameTabWidget: -+ painter->save(); -+ { -+ painter->fillRect(option->rect, tabFrameColor); -+ } -+#ifndef QT_NO_TABWIDGET -+ if (const QStyleOptionTabWidgetFrame *twf = qstyleoption_cast(option)) { -+ QColor borderColor = darkOutline.lighter(110); -+ QColor alphaCornerColor = mergedColors(borderColor, option->palette.background().color()); -+ QColor innerShadow = mergedColors(borderColor, option->palette.base().color()); -+ -+ int borderThickness = pixelMetric(PM_TabBarBaseOverlap, twf, widget); -+ bool reverse = (twf->direction == Qt::RightToLeft); -+ QRect tabBarRect; -+ -+ switch (twf->shape) { -+ case QTabBar::RoundedNorth: -+ if (reverse) { -+ tabBarRect = QRect(twf->rect.right() - twf->leftCornerWidgetSize.width() -+ - twf->tabBarSize.width() + 1, -+ twf->rect.top(), -+ twf->tabBarSize.width(), borderThickness); -+ } else { -+ tabBarRect = QRect(twf->rect.left() + twf->leftCornerWidgetSize.width(), -+ twf->rect.top(), -+ twf->tabBarSize.width(), borderThickness); -+ } -+ break ; -+ case QTabBar::RoundedWest: -+ tabBarRect = QRect(twf->rect.left(), -+ twf->rect.top() + twf->leftCornerWidgetSize.height(), -+ borderThickness, -+ twf->tabBarSize.height()); -+ tabBarRect = tabBarRect; //adjust -+ break ; -+ case QTabBar::RoundedEast: -+ tabBarRect = QRect(twf->rect.right() - borderThickness + 1, -+ twf->rect.top() + twf->leftCornerWidgetSize.height(), -+ 0, -+ twf->tabBarSize.height()); -+ break ; -+ case QTabBar::RoundedSouth: -+ if (reverse) { -+ tabBarRect = QRect(twf->rect.right() - twf->leftCornerWidgetSize.width() - twf->tabBarSize.width() + 1, -+ twf->rect.bottom() + 1, -+ twf->tabBarSize.width(), -+ borderThickness); -+ } else { -+ tabBarRect = QRect(twf->rect.left() + twf->leftCornerWidgetSize.width(), -+ twf->rect.bottom() + 1, -+ twf->tabBarSize.width(), -+ borderThickness); -+ } -+ break; -+ default: -+ break; -+ } -+ -+ QRegion region(twf->rect); -+ region -= tabBarRect; -+ painter->setClipRegion(region); -+ -+ // Outer border -+ QLine leftLine = QLine(twf->rect.topLeft() + QPoint(0, 2), twf->rect.bottomLeft() - QPoint(0, 2)); -+ QLine rightLine = QLine(twf->rect.topRight(), twf->rect.bottomRight() - QPoint(0, 2)); -+ QLine bottomLine = QLine(twf->rect.bottomLeft() + QPoint(2, 0), twf->rect.bottomRight() - QPoint(2, 0)); -+ QLine topLine = QLine(twf->rect.topLeft(), twf->rect.topRight()); -+ -+ painter->setPen(borderColor); -+ painter->drawLine(topLine); -+ -+ // Inner border -+ QLine innerLeftLine = QLine(leftLine.p1() + QPoint(1, 0), leftLine.p2() + QPoint(1, 0)); -+ QLine innerRightLine = QLine(rightLine.p1() - QPoint(1, -1), rightLine.p2() - QPoint(1, 0)); -+ QLine innerBottomLine = QLine(bottomLine.p1() - QPoint(0, 1), bottomLine.p2() - QPoint(0, 1)); -+ QLine innerTopLine = QLine(topLine.p1() + QPoint(0, 1), topLine.p2() + QPoint(-1, 1)); -+ -+ // Rounded Corner -+ QPoint leftBottomOuterCorner = QPoint(innerLeftLine.p2() + QPoint(0, 1)); -+ QPoint leftBottomInnerCorner1 = QPoint(leftLine.p2() + QPoint(0, 1)); -+ QPoint leftBottomInnerCorner2 = QPoint(bottomLine.p1() - QPoint(1, 0)); -+ QPoint rightBottomOuterCorner = QPoint(innerRightLine.p2() + QPoint(0, 1)); -+ QPoint rightBottomInnerCorner1 = QPoint(rightLine.p2() + QPoint(0, 1)); -+ QPoint rightBottomInnerCorner2 = QPoint(bottomLine.p2() + QPoint(1, 0)); -+ QPoint leftTopOuterCorner = QPoint(innerLeftLine.p1() - QPoint(0, 1)); -+ QPoint leftTopInnerCorner1 = QPoint(leftLine.p1() - QPoint(0, 1)); -+ QPoint leftTopInnerCorner2 = QPoint(topLine.p1() - QPoint(1, 0)); -+ -+ painter->setPen(borderColor); -+ painter->drawLine(leftLine); -+ painter->drawLine(rightLine); -+ painter->drawLine(bottomLine); -+ painter->drawPoint(leftBottomOuterCorner); -+ painter->drawPoint(rightBottomOuterCorner); -+ painter->drawPoint(leftTopOuterCorner); -+ -+ painter->setPen(option->palette.light().color()); -+ painter->drawLine(innerLeftLine); -+ painter->drawLine(innerTopLine); -+ -+ painter->setPen(buttonShadowAlpha); -+ painter->drawLine(innerRightLine); -+ painter->drawLine(innerBottomLine); -+ -+ painter->setPen(alphaCornerColor); -+ painter->drawPoint(leftBottomInnerCorner1); -+ painter->drawPoint(leftBottomInnerCorner2); -+ painter->drawPoint(rightBottomInnerCorner1); -+ painter->drawPoint(rightBottomInnerCorner2); -+ painter->drawPoint(leftTopInnerCorner1); -+ painter->drawPoint(leftTopInnerCorner2); -+ } -+#endif // QT_NO_TABWIDGET -+ painter->restore(); -+ break ; -+ -+ case PE_FrameStatusBarItem: -+ break; -+ case PE_IndicatorTabClose: -+ { -+ Q_D(const QHaikuStyle); -+ if (d->tabBarcloseButtonIcon.isNull()) -+ d->tabBarcloseButtonIcon = standardIcon(SP_DialogCloseButton, option, widget); -+ if ((option->state & State_Enabled) && (option->state & State_MouseOver)) -+ drawPrimitive(PE_PanelButtonCommand, option, painter, widget); -+ QPixmap pixmap = d->tabBarcloseButtonIcon.pixmap(QSize(16, 16), QIcon::Normal, QIcon::On); -+ drawItemPixmap(painter, option->rect, Qt::AlignCenter, pixmap); -+ } -+ break; -+ -+#endif // QT_NO_TABBAR -+ default: -+ QWindowsStyle::drawPrimitive(elem, option, painter, widget); -+ break; -+ } -+} -+ -+/*! -+ \reimp -+*/ -+void QHaikuStyle::drawControl(ControlElement element, const QStyleOption *option, QPainter *painter, -+ const QWidget *widget) const -+{ -+ QColor button = option->palette.button().color(); -+ QColor dark; -+ dark.setHsv(button.hue(), -+ CL_MIN(255, (int)(button.saturation()*1.9)), -+ CL_MIN(255, (int)(button.value()*0.7))); -+ QColor darkOutline; -+ darkOutline.setHsv(button.hue(), -+ CL_MIN(255, (int)(button.saturation()*2.0)), -+ CL_MIN(255, (int)(button.value()*0.6))); -+ QRect rect = option->rect; -+ QColor shadow = mergedColors(option->palette.background().color().darker(120), -+ dark.lighter(130), 60); -+ QColor tabFrameColor = mergedColors(option->palette.background().color(), -+ dark.lighter(135), 60); -+ -+ QColor highlight = option->palette.highlight().color(); -+ QColor highlightText = option->palette.highlightedText().color(); -+ -+ switch(element) { -+ case CE_RadioButton: //fall through -+ case CE_CheckBox: -+ if (const QStyleOptionButton *btn = qstyleoption_cast(option)) { -+ bool hover = (btn->state & State_MouseOver && btn->state & State_Enabled); -+ if (hover) -+ painter->fillRect(rect, btn->palette.background().color().lighter(104)); -+ QStyleOptionButton copy = *btn; -+ copy.rect.adjust(2, 0, -2, 0); -+ QWindowsStyle::drawControl(element, ©, painter, widget); -+ } -+ break; -+ case CE_Splitter: -+ painter->save(); -+ { -+ orientation orient = (option->state & State_Horizontal)?B_HORIZONTAL:B_VERTICAL; -+ -+ if (be_control_look != NULL) { -+ QRect r = option->rect; -+ rgb_color base = ui_color(B_PANEL_BACKGROUND_COLOR);; -+ uint32 flags = 0; -+ BRect bRect(0.0f, 0.0f, r.width() - 1, r.height() - 1); -+ TemporarySurface surface(bRect); -+ be_control_look->DrawSplitter(surface.view(), bRect, bRect, base, orient, flags); -+ painter->drawImage(r, surface.image()); -+ } -+ } -+ painter->restore(); -+ break; -+ case CE_SizeGrip: -+ painter->save(); -+ painter->fillRect(option->rect, option->palette.background().color()); -+ painter->restore(); -+ break; -+#ifndef QT_NO_TOOLBAR -+ case CE_ToolBar: -+ painter->save(); -+ if (const QStyleOptionToolBar *toolbar = qstyleoption_cast(option)) { -+ QRect rect = option->rect; -+ -+ bool paintLeftBorder = true; -+ bool paintRightBorder = true; -+ bool paintBottomBorder = true; -+ -+ switch (toolbar->toolBarArea) { -+ case Qt::BottomToolBarArea: -+ switch(toolbar->positionOfLine) { -+ case QStyleOptionToolBar::Beginning: -+ case QStyleOptionToolBar::OnlyOne: -+ paintBottomBorder = false; -+ default: -+ break; -+ } -+ case Qt::TopToolBarArea: -+ switch (toolbar->positionWithinLine) { -+ case QStyleOptionToolBar::Beginning: -+ paintLeftBorder = false; -+ break; -+ case QStyleOptionToolBar::End: -+ paintRightBorder = false; -+ break; -+ case QStyleOptionToolBar::OnlyOne: -+ paintRightBorder = false; -+ paintLeftBorder = false; -+ default: -+ break; -+ } -+ if (QApplication::layoutDirection() == Qt::RightToLeft) { //reverse layout changes the order of Beginning/end -+ bool tmp = paintLeftBorder; -+ paintRightBorder=paintLeftBorder; -+ paintLeftBorder=tmp; -+ } -+ break; -+ case Qt::RightToolBarArea: -+ switch (toolbar->positionOfLine) { -+ case QStyleOptionToolBar::Beginning: -+ case QStyleOptionToolBar::OnlyOne: -+ paintRightBorder = false; -+ break; -+ default: -+ break; -+ } -+ break; -+ case Qt::LeftToolBarArea: -+ switch (toolbar->positionOfLine) { -+ case QStyleOptionToolBar::Beginning: -+ case QStyleOptionToolBar::OnlyOne: -+ paintLeftBorder = false; -+ break; -+ default: -+ break; -+ } -+ break; -+ default: -+ break; -+ } -+ -+ QColor light = option->palette.background().color().lighter(110); -+ -+ //draw top border -+ painter->setPen(QPen(light)); -+ painter->drawLine(rect.topLeft().x(), -+ rect.topLeft().y(), -+ rect.topRight().x(), -+ rect.topRight().y()); -+ -+ if (paintLeftBorder) { -+ painter->setPen(QPen(light)); -+ painter->drawLine(rect.topLeft().x(), -+ rect.topLeft().y(), -+ rect.bottomLeft().x(), -+ rect.bottomLeft().y()); -+ } -+ -+ if (paintRightBorder) { -+ painter->setPen(QPen(shadow)); -+ painter->drawLine(rect.topRight().x(), -+ rect.topRight().y(), -+ rect.bottomRight().x(), -+ rect.bottomRight().y()); -+ } -+ -+ if (paintBottomBorder) { -+ painter->setPen(QPen(shadow)); -+ painter->drawLine(rect.bottomLeft().x(), -+ rect.bottomLeft().y(), -+ rect.bottomRight().x(), -+ rect.bottomRight().y()); -+ } -+ } -+ painter->restore(); -+ break; -+#endif // QT_NO_TOOLBAR -+#ifndef QT_NO_DOCKWIDGET -+ case CE_DockWidgetTitle: -+ painter->save(); -+ if (const QStyleOptionDockWidget *dwOpt = qstyleoption_cast(option)) { -+ const QStyleOptionDockWidgetV2 *v2 -+ = qstyleoption_cast(dwOpt); -+ bool verticalTitleBar = v2 == 0 ? false : v2->verticalTitleBar; -+ -+ QRect rect = dwOpt->rect; -+ QRect titleRect = subElementRect(SE_DockWidgetTitleBarText, option, widget); -+ QRect r = rect.adjusted(0, 0, -1, 0); -+ if (verticalTitleBar) -+ r.adjust(0, 0, 0, -1); -+ painter->setPen(option->palette.light().color()); -+ painter->drawRect(r.adjusted(1, 1, 1, 1)); -+ painter->setPen(shadow); -+ painter->drawRect(r); -+ -+ if (verticalTitleBar) { -+ QRect r = rect; -+ QSize s = r.size(); -+ s.transpose(); -+ r.setSize(s); -+ -+ titleRect = QRect(r.left() + rect.bottom() -+ - titleRect.bottom(), -+ r.top() + titleRect.left() - rect.left(), -+ titleRect.height(), titleRect.width()); -+ -+ painter->translate(r.left(), r.top() + r.width()); -+ painter->rotate(-90); -+ painter->translate(-r.left(), -r.top()); -+ -+ rect = r; -+ } -+ -+ if (!dwOpt->title.isEmpty()) { -+ QString titleText -+ = painter->fontMetrics().elidedText(dwOpt->title, -+ Qt::ElideRight, titleRect.width()); -+ drawItemText(painter, -+ titleRect, -+ Qt::AlignLeft | Qt::AlignVCenter | Qt::TextShowMnemonic, dwOpt->palette, -+ dwOpt->state & State_Enabled, titleText, -+ QPalette::WindowText); -+ } -+ } -+ painter->restore(); -+ break; -+#endif // QT_NO_DOCKWIDGET -+ case CE_HeaderSection: -+ painter->save(); -+ // Draws the header in tables. -+ if (const QStyleOptionHeader *header = qstyleoption_cast(option)) { -+ QPixmap cache; -+ QString pixmapName = uniqueName(QLatin1String("headersection"), option, option->rect.size()); -+ pixmapName += QLatin1String("-") + QString::number(int(header->position)); -+ pixmapName += QLatin1String("-") + QString::number(int(header->orientation)); -+ QRect r = option->rect; -+ QColor gradientStopColor; -+ QColor gradientStartColor = option->palette.button().color(); -+ gradientStopColor.setHsv(gradientStartColor.hue(), -+ CL_MIN(255, (int)(gradientStartColor.saturation()*2)), -+ CL_MIN(255, (int)(gradientStartColor.value()*0.96))); -+ QLinearGradient gradient(rect.topLeft(), rect.bottomLeft()); -+ if (option->palette.background().gradient()) { -+ gradient.setStops(option->palette.background().gradient()->stops()); -+ } else { -+ gradient.setColorAt(0, gradientStartColor); -+ gradient.setColorAt(0.8, gradientStartColor); -+ gradient.setColorAt(1, gradientStopColor); -+ } -+ painter->fillRect(r, gradient); -+ -+ if (!UsePixmapCache || !QPixmapCache::find(pixmapName, cache)) { -+ cache = QPixmap(r.size()); -+ cache.fill(Qt::transparent); -+ QRect pixmapRect(0, 0, r.width(), r.height()); -+ QPainter cachePainter(&cache); -+ if (header->orientation == Qt::Vertical) { -+ cachePainter.setPen(QPen(dark)); -+ cachePainter.drawLine(pixmapRect.topRight(), pixmapRect.bottomRight()); -+ if (header->position != QStyleOptionHeader::End) { -+ cachePainter.setPen(QPen(shadow)); -+ cachePainter.drawLine(pixmapRect.bottomLeft() + QPoint(3, -1), pixmapRect.bottomRight() + QPoint(-3, -1)); cachePainter.setPen(QPen(option->palette.light().color())); -+ cachePainter.drawLine(pixmapRect.bottomLeft() + QPoint(3, 0), pixmapRect.bottomRight() + QPoint(-3, 0)); } -+ } else { -+ cachePainter.setPen(QPen(dark)); -+ cachePainter.drawLine(pixmapRect.bottomLeft(), pixmapRect.bottomRight()); -+ cachePainter.setPen(QPen(shadow)); -+ cachePainter.drawLine(pixmapRect.topRight() + QPoint(-1, 3), pixmapRect.bottomRight() + QPoint(-1, -3)); cachePainter.setPen(QPen(option->palette.light().color())); -+ cachePainter.drawLine(pixmapRect.topRight() + QPoint(0, 3), pixmapRect.bottomRight() + QPoint(0, -3)); } -+ cachePainter.end(); -+ if (UsePixmapCache) -+ QPixmapCache::insert(pixmapName, cache); -+ } -+ painter->drawPixmap(r.topLeft(), cache); -+ } -+ painter->restore(); -+ break; -+ case CE_ProgressBarGroove: -+ painter->save(); -+ { -+ painter->fillRect(rect, option->palette.base()); -+ QColor borderColor = dark.lighter(110); -+ painter->setPen(QPen(borderColor, 0)); -+ painter->drawLine(QPoint(rect.left() + 1, rect.top()), QPoint(rect.right() - 1, rect.top())); -+ painter->drawLine(QPoint(rect.left() + 1, rect.bottom()), QPoint(rect.right() - 1, rect.bottom())); -+ painter->drawLine(QPoint(rect.left(), rect.top() + 1), QPoint(rect.left(), rect.bottom() - 1)); -+ painter->drawLine(QPoint(rect.right(), rect.top() + 1), QPoint(rect.right(), rect.bottom() - 1)); -+ QColor alphaCorner = mergedColors(borderColor, option->palette.background().color()); -+ QColor innerShadow = mergedColors(borderColor, option->palette.base().color()); -+ -+ //corner smoothing -+ painter->setPen(alphaCorner); -+ painter->drawPoint(rect.topRight()); -+ painter->drawPoint(rect.topLeft()); -+ painter->drawPoint(rect.bottomRight()); -+ painter->drawPoint(rect.bottomLeft()); -+ -+ //inner shadow -+ painter->setPen(innerShadow); -+ painter->drawLine(QPoint(rect.left() + 1, rect.top() + 1), -+ QPoint(rect.right() - 1, rect.top() + 1)); -+ painter->drawLine(QPoint(rect.left() + 1, rect.top() + 1), -+ QPoint(rect.left() + 1, rect.bottom() + 1)); -+ -+ } -+ painter->restore(); -+ break; -+ case CE_ProgressBarContents: -+ painter->save(); -+ if (const QStyleOptionProgressBar *bar = qstyleoption_cast(option)) { -+ QRect rect = bar->rect; -+ bool vertical = false; -+ bool inverted = false; -+ bool indeterminate = (bar->minimum == 0 && bar->maximum == 0); -+ -+ // Get extra style options if version 2 -+ if (const QStyleOptionProgressBarV2 *bar2 = qstyleoption_cast(option)) { -+ vertical = (bar2->orientation == Qt::Vertical); -+ inverted = bar2->invertedAppearance; -+ } -+ -+ // If the orientation is vertical, we use a transform to rotate -+ // the progress bar 90 degrees clockwise. This way we can use the -+ // same rendering code for both orientations. -+ if (vertical) { -+ rect = QRect(rect.left(), rect.top(), rect.height(), rect.width()); // flip width and height -+ QTransform m; -+ m.translate(rect.height()-1, -1.0); -+ m.rotate(90.0); -+ painter->setTransform(m, true); -+ } -+ -+ int maxWidth = rect.width() - 4; -+ int minWidth = 4; -+ qint64 progress = (qint64)qMax(bar->progress, bar->minimum); // workaround for bug in QProgressBar -+ double vc6_workaround = ((progress - qint64(bar->minimum)) / qMax(double(1.0), double(qint64(bar->maximum) - qint64(bar->minimum))) * maxWidth); -+ int progressBarWidth = (int(vc6_workaround) > minWidth ) ? int(vc6_workaround) : minWidth; -+ int width = indeterminate ? maxWidth : progressBarWidth; -+ -+ bool reverse = (!vertical && (bar->direction == Qt::RightToLeft)) || vertical; -+ if (inverted) -+ reverse = !reverse; -+ -+ QRect progressBar; -+ if (!indeterminate) { -+ if (!reverse) { -+ progressBar.setRect(rect.left() + 1, rect.top() + 1, width + 1, rect.height() - 3); -+ } else { -+ progressBar.setRect(rect.right() - 1 - width, rect.top() + 1, width + 1, rect.height() - 3); -+ } -+ } else { -+ Q_D(const QHaikuStyle); -+ int slideWidth = ((rect.width() - 4) * 2) / 3; -+ int step = ((d->animateStep * slideWidth) / d->animationFps) % slideWidth; -+ if ((((d->animateStep * slideWidth) / d->animationFps) % (2 * slideWidth)) >= slideWidth) -+ step = slideWidth - step; -+ progressBar.setRect(rect.left() + 1 + step, rect.top() + 1, -+ slideWidth / 2, rect.height() - 3); -+ } -+ QColor highlight = option->palette.color(QPalette::Normal, QPalette::Highlight); -+ painter->setPen(QPen(highlight.darker(140), 0)); -+ -+ QColor highlightedGradientStartColor = highlight.lighter(100); -+ QColor highlightedGradientStopColor = highlight.lighter(130); -+ -+ QLinearGradient gradient(rect.topLeft(), QPoint(rect.bottomLeft().x(), -+ rect.bottomLeft().y()*2)); -+ -+ gradient.setColorAt(0, highlightedGradientStartColor); -+ gradient.setColorAt(1, highlightedGradientStopColor); -+ -+ painter->setBrush(gradient); -+ painter->drawRect(progressBar); -+ -+ painter->setPen(QPen(highlight.lighter(120), 0)); -+ painter->drawLine(QPoint(progressBar.left() + 1, progressBar.top() + 1), -+ QPoint(progressBar.right(), progressBar.top() + 1)); -+ painter->drawLine(QPoint(progressBar.left() + 1, progressBar.top() + 1), -+ QPoint(progressBar.left() + 1, progressBar.bottom() - 1)); -+ -+ painter->setPen(QPen(highlightedGradientStartColor, 7.0));//QPen(option->palette.highlight(), 3)); -+ -+ painter->save(); -+ painter->setClipRect(progressBar.adjusted(2, 2, -1, -1)); -+ for (int x = progressBar.left() - 32; x < rect.right() ; x+=18) { -+ painter->drawLine(x, progressBar.bottom() + 1, x + 23, progressBar.top() - 2); -+ } -+ painter->restore(); -+ -+ } -+ painter->restore(); -+ break; -+ case CE_MenuBarItem: -+ painter->save(); -+ if (const QStyleOptionMenuItem *mbi = qstyleoption_cast(option)) -+ { -+ QStyleOptionMenuItem item = *mbi; -+ item.rect = mbi->rect.adjusted(0, 0, 0, 0); -+ if (be_control_look != NULL) { -+ QRect r = rect.adjusted(0,-1,0,0); -+ rgb_color base = ui_color(B_MENU_BACKGROUND_COLOR);; -+ uint32 flags = 0; -+ BRect bRect(0.0f, 0.0f, r.width() - 1, r.height() - 1); -+ TemporarySurface surface(bRect); -+ be_control_look->DrawMenuBarBackground(surface.view(), bRect, bRect, base, flags, 8); -+ painter->drawImage(r, surface.image()); -+ } -+ -+ bool act = mbi->state & State_Selected && mbi->state & State_Sunken; -+ bool dis = !(mbi->state & State_Enabled); -+ -+ QRect r = option->rect; -+ if (act) { -+ qt_haiku_draw_gradient(painter, r.adjusted(1, 1, -1, -1), -+ QColor(150,150,150), -+ QColor(168,168,168), TopDown, -+ QColor(168,168,168)); -+ -+ painter->setPen(QPen(QColor(168,168,168), 0)); -+ painter->drawLine(QPoint(r.left(), r.top()), QPoint(r.left(), r.bottom())); -+ painter->drawLine(QPoint(r.right(), r.top()), QPoint(r.right(), r.bottom())); -+ painter->drawLine(QPoint(r.left(), r.bottom()), QPoint(r.right(), r.bottom())); -+ painter->drawLine(QPoint(r.left(), r.top()), QPoint(r.right(), r.top())); -+ } -+ -+ QPalette::ColorRole textRole = QPalette::Text; -+ uint alignment = Qt::AlignCenter | Qt::TextHideMnemonic | Qt::TextDontClip | Qt::TextSingleLine; -+ drawItemText(painter, item.rect, alignment, mbi->palette, mbi->state & State_Enabled, mbi->text, textRole); -+ } -+ painter->restore(); -+ break; -+ case CE_MenuItem: -+ painter->save(); -+ // Draws one item in a popup menu. -+ if (const QStyleOptionMenuItem *menuItem = qstyleoption_cast(option)) { -+ QColor highlightOutline = QColor(168,168,168); -+ QColor menuBackground = option->palette.background().color().lighter(104); -+ QColor borderColor = option->palette.background().color().darker(160); -+ QColor alphaCornerColor; -+ -+ if (widget) { -+ // ### backgroundrole/foregroundrole should be part of the style option -+ alphaCornerColor = mergedColors(option->palette.color(widget->backgroundRole()), borderColor); -+ } else { -+ alphaCornerColor = mergedColors(option->palette.background().color(), borderColor); -+ } -+ QColor alphaTextColor = mergedColors(option->palette.background().color(), option->palette.text().color()); -+ if (menuItem->menuItemType == QStyleOptionMenuItem::Separator) { -+ painter->fillRect(menuItem->rect, menuBackground); -+ int w = 0; -+ if (!menuItem->text.isEmpty()) { -+ painter->setFont(menuItem->font); -+ drawItemText(painter, menuItem->rect.adjusted(5, 0, -5, 0), Qt::AlignLeft | Qt::AlignVCenter, -+ menuItem->palette, menuItem->state & State_Enabled, menuItem->text, -+ QPalette::Text); -+ w = menuItem->fontMetrics.width(menuItem->text) + 5; -+ } -+ painter->setPen(shadow.lighter(106)); -+ bool reverse = menuItem->direction == Qt::RightToLeft; -+ painter->drawLine(menuItem->rect.left() + 5 + (reverse ? 0 : w), menuItem->rect.center().y(), -+ menuItem->rect.right() - 5 - (reverse ? w : 0), menuItem->rect.center().y()); -+ painter->restore(); -+ break; -+ } -+ bool selected = menuItem->state & State_Selected; //&& menuItem->state & State_Enabled; -+ if (selected) { -+ QRect r = option->rect.adjusted(1, 0, -2, -1); -+ qt_haiku_draw_gradient(painter, r, QColor(150,150,150), -+ QColor(168,168,168), TopDown, -+ QColor(168,168,168)); -+ r = r.adjusted(-1, 0, 1, 0); -+ painter->setPen(QPen(QColor(168,168,168), 0)); -+ painter->drawLine(QPoint(r.left(), r.top()), QPoint(r.left(), r.bottom())); -+ painter->drawLine(QPoint(r.right(), r.top()), QPoint(r.right(), r.bottom())); -+ painter->drawLine(QPoint(r.left(), r.bottom()), QPoint(r.right(), r.bottom())); -+ painter->drawLine(QPoint(r.left(), r.top()), QPoint(r.right(), r.top())); -+ } else { -+ painter->fillRect(option->rect, menuBackground); -+ } -+ -+ bool checkable = menuItem->checkType != QStyleOptionMenuItem::NotCheckable; -+ bool checked = menuItem->checked; -+ bool sunken = menuItem->state & State_Sunken; -+ bool enabled = menuItem->state & State_Enabled; -+ -+ bool ignoreCheckMark = false; -+ int checkcol = qMax(menuItem->maxIconWidth, 20); -+ -+#ifndef QT_NO_COMBOBOX -+ if (qobject_cast(widget)) -+ ignoreCheckMark = true; //ignore the checkmarks provided by the QComboMenuDelegate -+#endif -+ -+ if (!ignoreCheckMark) { -+ // Check -+ QRect checkRect(option->rect.left() + 7, option->rect.center().y() - 6, 13, 13); -+ checkRect = visualRect(menuItem->direction, menuItem->rect, checkRect); -+ if (checkable) { -+ if (menuItem->checkType & QStyleOptionMenuItem::Exclusive) { -+ // Radio button -+ if (checked || sunken) { -+ painter->setRenderHint(QPainter::Antialiasing); -+ painter->setPen(Qt::NoPen); -+ -+ QPalette::ColorRole textRole = !enabled ? QPalette::Text: -+ selected ? QPalette::HighlightedText : QPalette::ButtonText; -+ painter->setBrush(option->palette.brush( option->palette.currentColorGroup(), textRole)); -+ painter->drawEllipse(checkRect.adjusted(4, 4, -4, -4)); -+ } -+ } else { -+ // Check box -+ if (menuItem->icon.isNull()) { -+ if (checked || sunken) { -+ QImage image(qt_haiku_menuitem_checkbox_checked); -+ if (enabled && (menuItem->state & State_Selected)) { -+ image.setColor(1, 0x55ffffff); -+ image.setColor(2, 0xAAffffff); -+ image.setColor(3, 0xBBffffff); -+ image.setColor(4, 0xFFffffff); -+ image.setColor(5, 0x33ffffff); -+ } else { -+ image.setColor(1, 0x55000000); -+ image.setColor(2, 0xAA000000); -+ image.setColor(3, 0xBB000000); -+ image.setColor(4, 0xFF000000); -+ image.setColor(5, 0x33000000); -+ } -+ painter->drawImage(QPoint(checkRect.center().x() - image.width() / 2, -+ checkRect.center().y() - image.height() / 2), image); -+ } -+ } -+ } -+ } -+ } else { //ignore checkmark -+ if (menuItem->icon.isNull()) -+ checkcol = 0; -+ else -+ checkcol = menuItem->maxIconWidth; -+ } -+ -+ // Text and icon, ripped from windows style -+ bool dis = !(menuItem->state & State_Enabled); -+ bool act = menuItem->state & State_Selected; -+ const QStyleOption *opt = option; -+ const QStyleOptionMenuItem *menuitem = menuItem; -+ -+ QPainter *p = painter; -+ QRect vCheckRect = visualRect(opt->direction, menuitem->rect, -+ QRect(menuitem->rect.x(), menuitem->rect.y(), -+ checkcol, menuitem->rect.height())); -+ if (!menuItem->icon.isNull()) { -+ QIcon::Mode mode = dis ? QIcon::Disabled : QIcon::Normal; -+ if (act && !dis) -+ mode = QIcon::Active; -+ QPixmap pixmap; -+ -+ int smallIconSize = pixelMetric(PM_SmallIconSize, option, widget); -+ QSize iconSize(smallIconSize, smallIconSize); -+#ifndef QT_NO_COMBOBOX -+ if (const QComboBox *combo = qobject_cast(widget)) -+ iconSize = combo->iconSize(); -+#endif // QT_NO_COMBOBOX -+ if (checked) -+ pixmap = menuItem->icon.pixmap(iconSize, mode, QIcon::On); -+ else -+ pixmap = menuItem->icon.pixmap(iconSize, mode); -+ -+ int pixw = pixmap.width(); -+ int pixh = pixmap.height(); -+ -+ QRect pmr(0, 0, pixw, pixh); -+ pmr.moveCenter(vCheckRect.center()); -+ painter->setPen(menuItem->palette.text().color()); -+ if (checkable && checked) { -+ QStyleOption opt = *option; -+ if (act) { -+ QColor activeColor = mergedColors(option->palette.background().color(), -+ option->palette.highlight().color()); -+ opt.palette.setBrush(QPalette::Button, activeColor); -+ } -+ opt.state |= State_Sunken; -+ opt.rect = vCheckRect; -+ bool enabled = opt.state & State_Enabled; -+ bool focus = opt.state & State_HasFocus; -+ qt_haiku_draw_button(painter, opt.rect, false, false, true, focus, enabled); -+ } -+ painter->drawPixmap(pmr.topLeft(), pixmap); -+ } -+ -+ painter->setPen(menuItem->palette.text().color()); -+ -+ int x, y, w, h; -+ menuitem->rect.getRect(&x, &y, &w, &h); -+ int tab = menuitem->tabWidth; -+ QColor discol; -+ if (dis) { -+ discol = menuitem->palette.text().color(); -+ p->setPen(discol); -+ } -+ int xm = windowsItemFrame + checkcol + windowsItemHMargin; -+ int xpos = menuitem->rect.x() + xm; -+ -+ QRect textRect(xpos, y + windowsItemVMargin, w - xm - windowsRightBorder - tab + 1, h - 2 * windowsItemVMargin); -+ QRect vTextRect = visualRect(opt->direction, menuitem->rect, textRect); -+ QString s = menuitem->text; -+ if (!s.isEmpty()) { // draw text -+ p->save(); -+ int t = s.indexOf(QLatin1Char('\t')); -+ int text_flags = Qt::AlignVCenter | Qt::TextShowMnemonic | Qt::TextDontClip | Qt::TextSingleLine; -+ if (!styleHint(SH_UnderlineShortcut, menuitem, widget)) -+ text_flags |= Qt::TextHideMnemonic; -+ text_flags |= Qt::AlignLeft; -+ if (t >= 0) { -+ QString sText = s.mid(t + 1); -+ sText.replace("Ctrl+","Alt+"); -+ QRect vShortcutRect = visualRect(opt->direction, menuitem->rect, -+ QRect(textRect.topRight(), QPoint(menuitem->rect.right(), textRect.bottom()))); -+ if (dis && !act && styleHint(SH_EtchDisabledText, option, widget)) { -+ p->setPen(menuitem->palette.light().color()); -+ p->drawText(vShortcutRect.adjusted(1, 1, 1, 1), text_flags, sText); -+ p->setPen(discol); -+ } -+ p->drawText(vShortcutRect, text_flags, sText); -+ s = s.left(t); -+ } -+ QFont font = menuitem->font; -+ -+ if (menuitem->menuItemType == QStyleOptionMenuItem::DefaultItem) -+ font.setBold(true); -+ -+ p->setFont(font); -+ if (dis && !act && styleHint(SH_EtchDisabledText, option, widget)) { -+ p->setPen(menuitem->palette.light().color()); -+ p->drawText(vTextRect.adjusted(1, 1, 1, 1), text_flags, s.left(t)); -+ p->setPen(discol); -+ } -+ p->drawText(vTextRect, text_flags, s.left(t)); -+ p->restore(); -+ } -+ -+ // Arrow -+ if (menuItem->menuItemType == QStyleOptionMenuItem::SubMenu) {// draw sub menu arrow -+ int dim = (menuItem->rect.height() - 4) / 2; -+ PrimitiveElement arrow; -+ arrow = QApplication::isRightToLeft() ? PE_IndicatorArrowLeft : PE_IndicatorArrowRight; -+ int xpos = menuItem->rect.left() + menuItem->rect.width() - 3 - dim; -+ QRect vSubMenuRect = visualRect(option->direction, menuItem->rect, -+ QRect(xpos, menuItem->rect.top() + menuItem->rect.height() / 2 - dim / 2, dim, dim)); -+ QStyleOptionMenuItem newMI = *menuItem; -+ newMI.rect = vSubMenuRect; -+ newMI.state = !enabled ? State_None : State_Enabled; -+ if (selected) -+ newMI.palette.setColor(QPalette::ButtonText, -+ newMI.palette.highlightedText().color()); -+ drawPrimitive(arrow, &newMI, painter, widget); -+ } -+ } -+ painter->restore(); -+ break; -+ case CE_MenuHMargin: -+ case CE_MenuVMargin: -+ break; -+ case CE_MenuEmptyArea: -+ break; -+ case CE_PushButtonLabel: -+ if (const QStyleOptionButton *button = qstyleoption_cast(option)) { -+ bool pushed = (option->state & State_Sunken) || (option->state & State_On); -+ -+ QRect ir = button->rect; -+ uint tf = Qt::AlignVCenter; -+ if (styleHint(SH_UnderlineShortcut, button, widget)) -+ tf |= Qt::TextShowMnemonic; -+ else -+ tf |= Qt::TextHideMnemonic; -+ -+ if (!button->icon.isNull() && button->text.isEmpty()) { -+ //Center both icon and text -+ QPoint point; -+ -+ QIcon::Mode mode = button->state & State_Enabled ? QIcon::Normal -+ : QIcon::Disabled; -+ if (mode == QIcon::Normal && button->state & State_HasFocus) -+ mode = QIcon::Active; -+ QIcon::State state = QIcon::Off; -+ if (button->state & State_On) -+ state = QIcon::On; -+ -+ QPixmap pixmap = button->icon.pixmap(button->iconSize, mode, state); -+ int w = pixmap.width(); -+ int h = pixmap.height(); -+ -+ if (!button->text.isEmpty()) -+ w += button->fontMetrics.boundingRect(option->rect, tf, button->text).width() + 2; -+ -+ point = QPoint(ir.x() + ir.width() / 2 - w / 2, -+ ir.y() + ir.height() / 2 - h / 2); -+ -+ if (button->direction == Qt::RightToLeft) -+ point.rx() += pixmap.width(); -+ -+ painter->drawPixmap(visualPos(button->direction, button->rect, point), pixmap); -+ -+ if (button->direction == Qt::RightToLeft) -+ ir.translate(-point.x() - 2, 0); -+ else -+ ir.translate(point.x() + pixmap.width(), 0); -+ -+ // left-align text if there is -+ if (!button->text.isEmpty()) -+ tf |= Qt::AlignLeft; -+ -+ } else { -+ tf |= Qt::AlignHCenter; -+ } -+ -+ if (button->features & QStyleOptionButton::HasMenu) -+ ir = ir.adjusted(0, 0, -pixelMetric(PM_MenuButtonIndicator, button, widget), 0); -+ if(pushed) -+ ir = ir.adjusted(1,1,0,0); -+ drawItemText(painter, ir, tf, button->palette, (button->state & State_Enabled), -+ button->text, QPalette::ButtonText); -+ } -+ break; -+ case CE_MenuBarEmptyArea: -+ painter->save(); -+ { -+ if (be_control_look != NULL) { -+ QRect r = rect.adjusted(0,0,0,-1); -+ rgb_color base = ui_color(B_MENU_BACKGROUND_COLOR);; -+ uint32 flags = 0; -+ BRect bRect(0.0f, 0.0f, r.width() - 1, r.height() - 1); -+ TemporarySurface surface(bRect); -+ be_control_look->DrawMenuBarBackground(surface.view(), bRect, bRect, base, flags); -+ painter->drawImage(r, surface.image()); -+ } -+ -+ painter->setPen(QPen(QColor(152,152,152))); -+ painter->drawLine(rect.bottomLeft(), rect.bottomRight()); -+ } -+ painter->restore(); -+ break; -+#ifndef QT_NO_TABBAR -+ case CE_TabBarTabShape: -+ painter->save(); -+ if (const QStyleOptionTab *tab = qstyleoption_cast(option)) { -+ -+ bool rtlHorTabs = (tab->direction == Qt::RightToLeft -+ && (tab->shape == QTabBar::RoundedNorth -+ || tab->shape == QTabBar::RoundedSouth)); -+ bool selected = tab->state & State_Selected; -+ bool lastTab = ((!rtlHorTabs && tab->position == QStyleOptionTab::End) -+ || (rtlHorTabs -+ && tab->position == QStyleOptionTab::Beginning)); -+ bool onlyTab = tab->position == QStyleOptionTab::OnlyOneTab; -+ bool leftCornerWidget = (tab->cornerWidgets & QStyleOptionTab::LeftCornerWidget); -+ -+ bool atBeginning = ((tab->position == (tab->direction == Qt::LeftToRight ? -+ QStyleOptionTab::Beginning : QStyleOptionTab::End)) || onlyTab); -+ -+ bool onlyOne = tab->position == QStyleOptionTab::OnlyOneTab; -+ bool previousSelected = -+ ((!rtlHorTabs -+ && tab->selectedPosition == QStyleOptionTab::PreviousIsSelected) -+ || (rtlHorTabs -+ && tab->selectedPosition == QStyleOptionTab::NextIsSelected)); -+ bool nextSelected = -+ ((!rtlHorTabs -+ && tab->selectedPosition == QStyleOptionTab::NextIsSelected) -+ || (rtlHorTabs -+ && tab->selectedPosition -+ == QStyleOptionTab::PreviousIsSelected)); -+ int tabBarAlignment = styleHint(SH_TabBar_Alignment, tab, widget); -+ bool leftAligned = (!rtlHorTabs && tabBarAlignment == Qt::AlignLeft) -+ || (rtlHorTabs -+ && tabBarAlignment == Qt::AlignRight); -+ -+ bool rightAligned = (!rtlHorTabs && tabBarAlignment == Qt::AlignRight) -+ || (rtlHorTabs -+ && tabBarAlignment == Qt::AlignLeft); -+ -+ QColor light = tab->palette.light().color(); -+ QColor midlight = tab->palette.midlight().color(); -+ -+ QColor background = tab->palette.background().color(); -+ int borderThinkness = pixelMetric(PM_TabBarBaseOverlap, tab, widget); -+ if (selected) -+ borderThinkness /= 2; -+ QRect r2(option->rect); -+ int x1 = r2.left(); -+ int x2 = r2.right(); -+ int y1 = r2.top()+2; -+ int y2 = r2.bottom(); -+ -+ QTransform rotMatrix; -+ bool flip = false; -+ painter->setPen(shadow); -+ QColor activeHighlight = option->palette.color(QPalette::Normal, QPalette::Highlight); -+ switch (tab->shape) { -+ case QTabBar::RoundedNorth: -+ break; -+ case QTabBar::RoundedSouth: -+ rotMatrix.rotate(180); -+ rotMatrix.translate(0, -rect.height() + 1); -+ rotMatrix.scale(-1, 1); -+ painter->setTransform(rotMatrix, true); -+ break; -+ case QTabBar::RoundedWest: -+ rotMatrix.rotate(180 + 90); -+ rotMatrix.scale(-1, 1); -+ flip = true; -+ painter->setTransform(rotMatrix, true); -+ break; -+ case QTabBar::RoundedEast: -+ rotMatrix.rotate(90); -+ rotMatrix.translate(0, - rect.width() + 1); -+ flip = true; -+ painter->setTransform(rotMatrix, true); -+ break; -+ default: -+ painter->restore(); -+ QWindowsStyle::drawControl(element, tab, painter, widget); -+ return; -+ } -+ -+ if (flip) { -+ QRect tmp = rect; -+ rect = QRect(tmp.y(), tmp.x(), tmp.height(), tmp.width()); -+ int temp = x1; -+ x1 = y1; -+ y1 = temp; -+ temp = x2; -+ x2 = y2; -+ y2 = temp; -+ } -+ -+ QLinearGradient gradient(rect.topLeft(), rect.bottomLeft()); -+ if (option->palette.button().gradient()) { -+ if (selected) -+ gradient.setStops(option->palette.background().gradient()->stops()); -+ else -+ gradient.setStops(option->palette.background().gradient()->stops()); -+ } -+ else if (selected) { -+ gradient.setColorAt(0, option->palette.background().color().lighter(104)); -+ gradient.setColorAt(1, tabFrameColor); -+ painter->fillRect(rect.adjusted(0, 2, 0, -2), gradient); -+ } else { -+ y1 += 2; -+ gradient.setColorAt(0, option->palette.background().color()); -+ gradient.setColorAt(1, dark.lighter(120)); -+ painter->fillRect(rect.adjusted(0, 2, 0, -2), gradient); -+ } -+ -+ // Delete border -+ if (selected) { -+ painter->setPen(QColor(200,200,200)); -+ painter->drawLine(x1 + 2, y2 - 1, x2 - 2, y2 - 1); -+ } else { -+ painter->setPen(dark); -+ painter->drawLine(x1, y2 - 1, x2 + 2, y2 - 1 ); -+ if (tab->shape == QTabBar::RoundedNorth || tab->shape == QTabBar::RoundedWest) { -+ painter->setPen(light); -+ painter->drawLine(x1, y2 , x2, y2 ); -+ } -+ } -+ // Left -+ if (atBeginning || selected ) { -+ painter->setPen(light); -+ painter->drawLine(x1 + 1, y1 + 2 + 1, x1 + 1, y2 - ((onlyOne || atBeginning) && selected && leftAligned ? 0 : borderThinkness) - (atBeginning && leftCornerWidget ? 1 : 0)); -+ //painter->drawPoint(x1 + 1, y1 + 1); -+ painter->setPen(dark); -+ painter->drawLine(x1, y1 + 2, x1, y2 - ((onlyOne || atBeginning) && leftAligned ? 0 : borderThinkness) - (atBeginning && leftCornerWidget ? 1 : 0)); -+ } -+ // Top -+ { -+ int beg = x1 + (previousSelected ? 0 : 1); -+ int end = x2 - (nextSelected ? 0 : 2); -+ //painter->setPen(light); -+ -+ // if (!selected)painter->drawLine(beg - 3, y1 + 1, end, y1 + 1); -+ -+/* if (selected) -+ painter->setPen(QPen(activeHighlight.darker(150), 0)); -+ else -+ painter->setPen(darkOutline);*/ -+ -+ painter->setPen(darkOutline); -+ painter->drawLine(beg, y1 , end, y1); -+ -+ if (atBeginning|| selected) { -+ painter->drawPoint(beg - 1, y1 + 1); -+ } else if (!atBeginning) { -+ painter->drawPoint(beg - 1, y1); -+ painter->drawPoint(beg - 2, y1); -+ if (!lastTab) { -+ painter->setPen(dark.lighter(130)); -+ painter->drawPoint(end + 1, y1); -+ painter->drawPoint(end + 2 , y1); -+ painter->drawPoint(end + 3, y1); -+ } -+ } -+ } -+ // Right -+ if (lastTab || selected || onlyOne || !nextSelected) { -+ painter->setPen(darkOutline); -+ -+ if (selected) { -+ painter->drawLine(x2, y1 + 2, x2, y2 - ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness)); -+ painter->setPen(QPen(activeHighlight.darker(150), 0)); -+ painter->drawPoint(x2 - 1, y1 + 1); -+ } else { -+ painter->drawLine(x2, y1 + 1, x2, y2 - ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness)); -+ painter->drawPoint(x2 - 1, y1); -+ } -+ -+ if (selected) { -+ painter->setPen(background.darker(110)); -+ painter->drawLine(x2 - 1, y1 + 2, x2 - 1, y2 - ((onlyOne || lastTab) && selected && rightAligned ? 0 : borderThinkness)); -+ } -+ } -+ } -+ painter->restore(); -+ break; -+ -+#endif // QT_NO_TABBAR -+ default: -+ QWindowsStyle::drawControl(element,option,painter,widget); -+ break; -+ } -+} -+ -+/*! -+ \reimp -+*/ -+ -+QPalette QHaikuStyle::standardPalette () const -+{ -+ QPalette palette = QWindowsStyle::standardPalette(); -+ palette.setBrush(QPalette::Active, QPalette::Highlight, QColor(98, 140, 178)); -+ palette.setBrush(QPalette::Inactive, QPalette::Highlight, QColor(145, 141, 126)); -+ palette.setBrush(QPalette::Disabled, QPalette::Highlight, QColor(145, 141, 126)); -+ -+ QColor backGround(mkQColor(ui_color(B_PANEL_BACKGROUND_COLOR))); -+ -+ QColor light = backGround.lighter(150); -+ QColor base = Qt::white; -+ QColor dark = QColor(170, 156, 143).darker(110); -+ dark = backGround.darker(150); -+ QColor darkDisabled = QColor(209, 200, 191).darker(110); -+ -+ //### Find the correct disabled text color -+ palette.setBrush(QPalette::Disabled, QPalette::Text, QColor(190, 190, 190)); -+ -+ palette.setBrush(QPalette::Window, backGround); -+ palette.setBrush(QPalette::Mid, backGround.darker(130)); -+ palette.setBrush(QPalette::Light, light); -+ -+ palette.setBrush(QPalette::Active, QPalette::Base, base); -+ palette.setBrush(QPalette::Inactive, QPalette::Base, base); -+ palette.setBrush(QPalette::Disabled, QPalette::Base, backGround); -+ -+ palette.setBrush(QPalette::Midlight, palette.mid().color().lighter(110)); -+ -+ palette.setBrush(QPalette::All, QPalette::Dark, dark); -+ palette.setBrush(QPalette::Disabled, QPalette::Dark, darkDisabled); -+ -+ QColor button = backGround; -+ -+ palette.setBrush(QPalette::Button, button); -+ -+ QColor shadow = dark.darker(135); -+ palette.setBrush(QPalette::Shadow, shadow); -+ palette.setBrush(QPalette::Disabled, QPalette::Shadow, shadow.lighter(150)); -+ palette.setBrush(QPalette::HighlightedText, QColor(QRgb(0xffffffff))); -+ return palette; -+} -+ -+/*! -+ \reimp -+*/ -+void QHaikuStyle::drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, -+ QPainter *painter, const QWidget *widget) const -+{ -+ QColor button = option->palette.button().color(); -+ QColor dark; -+ QColor grooveColor; -+ QColor darkOutline; -+ dark.setHsv(button.hue(), -+ CL_MIN(255, (int)(button.saturation()*1.9)), -+ CL_MIN(255, (int)(button.value()*0.7))); -+ grooveColor.setHsv(button.hue(), -+ CL_MIN(255, (int)(button.saturation()*2.6)), -+ CL_MIN(255, (int)(button.value()*0.9))); -+ darkOutline.setHsv(button.hue(), -+ CL_MIN(255, (int)(button.saturation()*3.0)), -+ CL_MIN(255, (int)(button.value()*0.6))); -+ -+ QColor alphaCornerColor; -+ if (widget) { -+ // ### backgroundrole/foregroundrole should be part of the style option -+ alphaCornerColor = mergedColors(option->palette.color(widget->backgroundRole()), darkOutline); -+ } else { -+ alphaCornerColor = mergedColors(option->palette.background().color(), darkOutline); -+ } -+ QColor gripShadow = grooveColor.darker(110); -+ QColor buttonShadow = option->palette.button().color().darker(110); -+ -+ QColor gradientStartColor = option->palette.button().color().lighter(108); -+ QColor gradientStopColor = mergedColors(option->palette.button().color().darker(108), dark.lighter(150), 70); -+ -+ QColor highlightedGradientStartColor = option->palette.button().color(); -+ QColor highlightedGradientStopColor = mergedColors(option->palette.button().color(), option->palette.highlight().color(), 85); -+ -+ QColor highlightedDarkInnerBorderColor = mergedColors(option->palette.button().color(), option->palette.highlight().color(), 35); -+ QColor highlightedLightInnerBorderColor = mergedColors(option->palette.button().color(), option->palette.highlight().color(), 58); -+ -+ QColor buttonShadowAlpha = option->palette.background().color().darker(105); -+ -+ QPalette palette = option->palette; -+ -+ switch (control) { -+#ifndef QT_NO_SPINBOX -+ case CC_SpinBox: -+ if (const QStyleOptionSpinBox *spinBox = qstyleoption_cast(option)) { -+ QPixmap cache; -+ QString pixmapName = uniqueName(QLatin1String("spinbox"), spinBox, spinBox->rect.size()); -+ if (!UsePixmapCache || !QPixmapCache::find(pixmapName, cache)) { -+ cache = QPixmap(spinBox->rect.size()); -+ cache.fill(Qt::transparent); -+ QRect pixmapRect(0, 0, spinBox->rect.width(), spinBox->rect.height()); -+ QPainter cachePainter(&cache); -+ -+ bool isEnabled = (spinBox->state & State_Enabled); -+ //bool focus = isEnabled && (spinBox->state & State_HasFocus); -+ bool hover = isEnabled && (spinBox->state & State_MouseOver); -+ bool sunken = (spinBox->state & State_Sunken); -+ bool upIsActive = (spinBox->activeSubControls == SC_SpinBoxUp); -+ bool downIsActive = (spinBox->activeSubControls == SC_SpinBoxDown); -+ -+ QRect rect = pixmapRect; -+ QStyleOptionSpinBox spinBoxCopy = *spinBox; -+ spinBoxCopy.rect = pixmapRect; -+ QRect upRect = subControlRect(CC_SpinBox, &spinBoxCopy, SC_SpinBoxUp, widget); -+ QRect downRect = subControlRect(CC_SpinBox, &spinBoxCopy, SC_SpinBoxDown, widget); -+ -+ int fw = spinBoxCopy.frame ? pixelMetric(PM_SpinBoxFrameWidth, &spinBoxCopy, widget) : 0; -+ cachePainter.fillRect(rect.adjusted(1, qMax(fw - 1, 0), -1, -fw), -+ option->palette.base()); -+ -+ QRect r = rect.adjusted(0, 1, 0, -1); -+ if (spinBox->frame) { -+ -+ QColor topShadow = darkOutline; -+ topShadow.setAlpha(60); -+ cachePainter.setPen(topShadow); -+ -+ // antialias corners -+ cachePainter.drawPoint(QPoint(r.right(), r.top() + 1)); -+ cachePainter.drawPoint(QPoint(r.right() - 1, r.top() )); -+ cachePainter.drawPoint(QPoint(r.right(), r.bottom() - 1)); -+ cachePainter.drawPoint(QPoint(r.right() - 1, r.bottom() )); -+ cachePainter.drawPoint(QPoint(r.left() + 1, r.bottom())); -+ cachePainter.drawPoint(QPoint(r.left(), r.bottom() - 1)); -+ cachePainter.drawPoint(QPoint(r.left() + 1, r.top())); -+ cachePainter.drawPoint(QPoint(r.left(), r.top() + 1)); -+ -+ // draw frame -+ topShadow.setAlpha(30); -+ cachePainter.setPen(topShadow); -+ cachePainter.drawLine(QPoint(r.left() + 2, r.top() - 1), QPoint(r.right() - 2, r.top() - 1)); -+ -+ cachePainter.setPen(QPen(option->palette.background().color(), 1)); -+ cachePainter.drawLine(QPoint(r.left() + 2, r.top() + 1), QPoint(r.right() - 2, r.top() + 1)); -+ QColor highlight = Qt::white; -+ highlight.setAlpha(130); -+ cachePainter.setPen(option->palette.base().color().darker(120)); -+ cachePainter.drawLine(QPoint(r.left() + 1, r.top() + 1), -+ QPoint(r.right() - 1, r.top() + 1)); -+ cachePainter.drawLine(QPoint(r.left() + 1, r.top() + 1), -+ QPoint(r.left() + 1, r.bottom() - 1)); -+ cachePainter.setPen(option->palette.base().color()); -+ cachePainter.drawLine(QPoint(r.right() - 1, r.top() + 1), -+ QPoint(r.right() - 1, r.bottom() - 1)); -+ cachePainter.drawLine(QPoint(r.left() + 1, r.bottom() - 1), -+ QPoint(r.right() - 1, r.bottom() - 1)); -+ cachePainter.setPen(highlight); -+ cachePainter.drawLine(QPoint(r.left() + 3, r.bottom() + 1), -+ QPoint(r.right() - 3, r.bottom() + 1)); -+ -+ cachePainter.setPen(QPen(darkOutline, 1)); -+ -+ // top and bottom lines -+ cachePainter.drawLine(QPoint(r.left() + 2, r.bottom()), QPoint(r.right()- 2, r.bottom())); -+ cachePainter.drawLine(QPoint(r.left() + 2, r.top()), QPoint(r.right() - 2, r.top())); -+ cachePainter.drawLine(QPoint(r.right(), r.top() + 2), QPoint(r.right(), r.bottom() - 2)); -+ cachePainter.drawLine(QPoint(r.left(), r.top() + 2), QPoint(r.left(), r.bottom() - 2)); -+ } -+ -+ // gradients -+ qt_haiku_draw_gradient(&cachePainter, upRect, -+ gradientStartColor.darker(106), -+ gradientStopColor, TopDown, option->palette.button()); -+ qt_haiku_draw_gradient(&cachePainter, downRect.adjusted(0, 0, 0, 1), -+ gradientStartColor.darker(106), -+ gradientStopColor, TopDown, option->palette.button()); -+ if (isEnabled) { -+ if(upIsActive) { -+ if (sunken) { -+ cachePainter.fillRect(upRect.adjusted(1, 0, 0, 0), gradientStopColor.darker(110)); -+ } else if (hover) { -+ qt_haiku_draw_gradient(&cachePainter, upRect.adjusted(1, 0, 0, 0), -+ gradientStartColor.lighter(110), -+ gradientStopColor.lighter(110), TopDown, option->palette.button()); -+ } -+ } -+ if(downIsActive) { -+ if (sunken) { -+ cachePainter.fillRect(downRect.adjusted(1, 0, 0, 1), gradientStopColor.darker(110)); -+ -+ } else if (hover) { -+ qt_haiku_draw_gradient(&cachePainter, downRect.adjusted(1, 0, 0, 1), -+ gradientStartColor.lighter(110), -+ gradientStopColor.lighter(110), TopDown, option->palette.button()); -+ } -+ } -+ } -+ -+ if (spinBox->frame) { -+ // rounded corners -+ cachePainter.drawPoint(QPoint(r.left() + 1, r.bottom() - 1)); -+ cachePainter.drawPoint(QPoint(r.left() + 1, r.top() + 1)); -+ cachePainter.drawPoint(QPoint(r.right() - 1, r.bottom() - 1)); -+ cachePainter.drawPoint(QPoint(r.right() - 1, r.top() + 1)); -+ -+ if (option->state & State_HasFocus) { -+ QColor darkoutline = option->palette.highlight().color().darker(150); -+ QColor innerline = mergedColors(option->palette.highlight().color(), Qt::white); -+ cachePainter.setPen(QPen(innerline, 0)); -+ if (spinBox->direction == Qt::LeftToRight) { -+ cachePainter.drawRect(rect.adjusted(1, 2, -3 -downRect.width(), -3)); -+ cachePainter.setPen(QPen(darkoutline, 0)); -+ cachePainter.drawLine(QPoint(r.left() + 2, r.bottom()), QPoint(r.right()- downRect.width() - 1, r.bottom())); -+ cachePainter.drawLine(QPoint(r.left() + 2, r.top()), QPoint(r.right() - downRect.width() - 1, r.top())); -+ cachePainter.drawLine(QPoint(r.right() - downRect.width() - 1, r.top() + 1), QPoint(r.right()- downRect.width() - 1, r.bottom() - 1)); -+ cachePainter.drawLine(QPoint(r.left(), r.top() + 2), QPoint(r.left(), r.bottom() - 2)); -+ cachePainter.drawPoint(QPoint(r.left() + 1, r.bottom() - 1)); -+ cachePainter.drawPoint(QPoint(r.left() + 1, r.top() + 1)); -+ cachePainter.drawLine(QPoint(r.left(), r.top() + 2), QPoint(r.left(), r.bottom() - 2)); -+ } else { -+ cachePainter.drawRect(rect.adjusted(downRect.width() + 2, 2, -2, -3)); -+ cachePainter.setPen(QPen(darkoutline, 0)); -+ cachePainter.drawLine(QPoint(r.left() + downRect.width(), r.bottom()), QPoint(r.right()- 2 - 1, r.bottom())); -+ cachePainter.drawLine(QPoint(r.left() + downRect.width(), r.top()), QPoint(r.right() - 2 - 1, r.top())); -+ -+ cachePainter.drawLine(QPoint(r.right(), r.top() + 2), QPoint(r.right(), r.bottom() - 2)); -+ cachePainter.drawPoint(QPoint(r.right() - 1, r.bottom() - 1)); -+ cachePainter.drawPoint(QPoint(r.right() - 1, r.top() + 1)); -+ cachePainter.drawLine(QPoint(r.left() + downRect.width() + 1, r.top()), -+ QPoint(r.left() + downRect.width() + 1, r.bottom())); -+ } -+ } -+ } -+ -+ // outline the up/down buttons -+ cachePainter.setPen(darkOutline); -+ QColor light = option->palette.light().color().lighter(); -+ -+ if (spinBox->direction == Qt::RightToLeft) { -+ cachePainter.drawLine(upRect.right(), upRect.top() - 1, upRect.right(), downRect.bottom() + 1); -+ cachePainter.setPen(light); -+ cachePainter.drawLine(upRect.right() - 1, upRect.top() + 3, upRect.right() - 1, downRect.bottom() ); -+ } else { -+ cachePainter.drawLine(upRect.left(), upRect.top() - 1, upRect.left(), downRect.bottom() + 1); -+ cachePainter.setPen(light); -+ cachePainter.drawLine(upRect.left() + 1, upRect.top() , upRect.left() + 1, downRect.bottom() ); -+ } -+ if (upIsActive && sunken) { -+ cachePainter.setPen(gradientStopColor.darker(130)); -+ cachePainter.drawLine(upRect.left() + 1, upRect.top(), upRect.left() + 1, upRect.bottom()); -+ cachePainter.drawLine(upRect.left(), upRect.top() - 1, upRect.right(), upRect.top() - 1); -+ } else { -+ cachePainter.setPen(light); -+ cachePainter.drawLine(upRect.topLeft() + QPoint(1, -1), upRect.topRight() + QPoint(-1, -1)); -+ cachePainter.setPen(darkOutline); -+ cachePainter.drawLine(upRect.bottomLeft(), upRect.bottomRight()); -+ } -+ if (downIsActive && sunken) { -+ cachePainter.setPen(gradientStopColor.darker(130)); -+ cachePainter.drawLine(downRect.left() + 1, downRect.top(), downRect.left() + 1, downRect.bottom() + 1); -+ cachePainter.drawLine(downRect.left(), downRect.top(), downRect.right(), downRect.top()); -+ cachePainter.setPen(gradientStopColor.darker(110)); -+ cachePainter.drawLine(downRect.left(), downRect.bottom() + 1, downRect.right(), downRect.bottom() + 1); -+ } else { -+ cachePainter.setPen(light); -+ cachePainter.drawLine(downRect.topLeft() + QPoint(2,0), downRect.topRight()); -+ } -+ -+ if (spinBox->buttonSymbols == QAbstractSpinBox::PlusMinus) { -+ int centerX = upRect.center().x(); -+ int centerY = upRect.center().y(); -+ cachePainter.setPen(spinBox->palette.foreground().color()); -+ -+ // plus/minus -+ if (spinBox->activeSubControls == SC_SpinBoxUp && sunken) { -+ cachePainter.drawLine(1 + centerX - 2, 1 + centerY, 1 + centerX + 2, 1 + centerY); -+ cachePainter.drawLine(1 + centerX, 1 + centerY - 2, 1 + centerX, 1 + centerY + 2); -+ } else { -+ cachePainter.drawLine(centerX - 2, centerY, centerX + 2, centerY); -+ cachePainter.drawLine(centerX, centerY - 2, centerX, centerY + 2); -+ } -+ -+ centerX = downRect.center().x(); -+ centerY = downRect.center().y(); -+ if (spinBox->activeSubControls == SC_SpinBoxDown && sunken) { -+ cachePainter.drawLine(1 + centerX - 2, 1 + centerY, 1 + centerX + 2, 1 + centerY); -+ } else { -+ cachePainter.drawLine(centerX - 2, centerY, centerX + 2, centerY); -+ } -+ } else if (spinBox->buttonSymbols == QAbstractSpinBox::UpDownArrows){ -+ // arrows -+ QImage upArrow(qt_scrollbar_button_arrow_up); -+ upArrow.setColor(1, spinBox->palette.foreground().color().rgba()); -+ -+ cachePainter.drawImage(upRect.center().x() - upArrow.width() / 2, -+ upRect.center().y() - upArrow.height() / 2, -+ upArrow); -+ -+ QImage downArrow(qt_scrollbar_button_arrow_down); -+ downArrow.setColor(1, spinBox->palette.foreground().color().rgba()); -+ -+ cachePainter.drawImage(downRect.center().x() - downArrow.width() / 2, -+ downRect.center().y() - downArrow.height() / 2 + 1, -+ downArrow); -+ } -+ -+ QColor disabledColor = option->palette.background().color(); -+ disabledColor.setAlpha(150); -+ if (!(spinBox->stepEnabled & QAbstractSpinBox::StepUpEnabled)) -+ cachePainter.fillRect(upRect.adjusted(1, 0, 0, 0), disabledColor); -+ if (!(spinBox->stepEnabled & QAbstractSpinBox::StepDownEnabled)) { -+ cachePainter.fillRect(downRect.adjusted(1, 0, 0, 0), disabledColor); -+ } -+ cachePainter.end(); -+ if (UsePixmapCache) -+ QPixmapCache::insert(pixmapName, cache); -+ } -+ painter->drawPixmap(spinBox->rect.topLeft(), cache); -+ } -+ break; -+#endif // QT_NO_SPINBOX -+ case CC_TitleBar: -+ painter->save(); -+ if (const QStyleOptionTitleBar *titleBar = qstyleoption_cast(option)) { -+ const int buttonMargin = 5; -+ bool active = (titleBar->titleBarState & State_Active); -+ QRect fullRect = titleBar->rect; -+ QPalette palette = option->palette; -+ QColor highlight = option->palette.highlight().color(); -+ -+ QColor titleBarFrameBorder(active ? highlight.darker(180): dark.darker(110)); -+ QColor titleBarHighlight(active ? highlight.lighter(120): palette.background().color().lighter(120)); -+ QColor textColor(active ? 0xffffff : 0xff000000); -+ QColor textAlphaColor(active ? 0xffffff : 0xff000000 ); -+ -+#ifdef QT3_SUPPORT -+ if (widget && widget->inherits("Q3DockWindowTitleBar")) { -+ QStyleOptionDockWidgetV2 dockwidget; -+ dockwidget.QStyleOption::operator=(*option); -+ drawControl(CE_DockWidgetTitle, &dockwidget, painter, widget); -+ } else -+#endif // QT3_SUPPORT -+ { -+ // Fill title bar gradient -+ QColor titlebarColor = QColor(active ? highlight: palette.background().color()); -+ QColor titleBarGradientStop(active ? highlight.darker(150): palette.background().color().darker(120)); -+ QLinearGradient gradient(option->rect.center().x(), option->rect.top(), -+ option->rect.center().x(), option->rect.bottom()); -+ -+ gradient.setColorAt(0, titlebarColor.lighter(114)); -+ gradient.setColorAt(0.5, titlebarColor.lighter(102)); -+ gradient.setColorAt(0.51, titlebarColor.darker(104)); -+ gradient.setColorAt(1, titlebarColor); -+ painter->fillRect(option->rect.adjusted(1, 1, -1, 0), gradient); -+ -+ // Frame and rounded corners -+ painter->setPen(titleBarFrameBorder); -+ -+ // top outline -+ painter->drawLine(fullRect.left() + 5, fullRect.top(), fullRect.right() - 5, fullRect.top()); -+ painter->drawLine(fullRect.left(), fullRect.top() + 4, fullRect.left(), fullRect.bottom()); -+ painter->drawPoint(fullRect.left() + 4, fullRect.top() + 1); -+ painter->drawPoint(fullRect.left() + 3, fullRect.top() + 1); -+ painter->drawPoint(fullRect.left() + 2, fullRect.top() + 2); -+ painter->drawPoint(fullRect.left() + 1, fullRect.top() + 3); -+ painter->drawPoint(fullRect.left() + 1, fullRect.top() + 4); -+ -+ painter->drawLine(fullRect.right(), fullRect.top() + 4, fullRect.right(), fullRect.bottom()); -+ painter->drawPoint(fullRect.right() - 3, fullRect.top() + 1); -+ painter->drawPoint(fullRect.right() - 4, fullRect.top() + 1); -+ painter->drawPoint(fullRect.right() - 2, fullRect.top() + 2); -+ painter->drawPoint(fullRect.right() - 1, fullRect.top() + 3); -+ painter->drawPoint(fullRect.right() - 1, fullRect.top() + 4); -+ -+ // draw bottomline -+ painter->drawLine(fullRect.right(), fullRect.bottom(), fullRect.left(), fullRect.bottom()); -+ -+ // top highlight -+ painter->setPen(titleBarHighlight); -+ painter->drawLine(fullRect.left() + 6, fullRect.top() + 1, fullRect.right() - 6, fullRect.top() + 1); -+ } -+ // draw title -+ QRect textRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarLabel, widget); -+ QFont font = painter->font(); -+ font.setBold(true); -+ painter->setFont(font); -+ painter->setPen(active? (titleBar->palette.text().color().lighter(120)) : -+ titleBar->palette.text().color() ); -+ // Note workspace also does elliding but it does not use the correct font -+ QString title = QFontMetrics(font).elidedText(titleBar->text, Qt::ElideRight, textRect.width() - 14); -+ painter->drawText(textRect.adjusted(1, 1, 1, 1), title, QTextOption(Qt::AlignHCenter | Qt::AlignVCenter)); -+ painter->setPen(Qt::white); -+ if (active) -+ painter->drawText(textRect, title, QTextOption(Qt::AlignHCenter | Qt::AlignVCenter)); -+ // min button -+ if ((titleBar->subControls & SC_TitleBarMinButton) && (titleBar->titleBarFlags & Qt::WindowMinimizeButtonHint) && -+ !(titleBar->titleBarState& Qt::WindowMinimized)) { -+ QRect minButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarMinButton, widget); -+ if (minButtonRect.isValid()) { -+ bool hover = (titleBar->activeSubControls & SC_TitleBarMinButton) && (titleBar->state & State_MouseOver); -+ bool sunken = (titleBar->activeSubControls & SC_TitleBarMinButton) && (titleBar->state & State_Sunken); -+ qt_haiku_draw_mdibutton(painter, titleBar, minButtonRect, hover, sunken); -+ QRect minButtonIconRect = minButtonRect.adjusted(buttonMargin ,buttonMargin , -buttonMargin, -buttonMargin); -+ painter->setPen(textColor); -+ painter->drawLine(minButtonIconRect.center().x() - 2, minButtonIconRect.center().y() + 3, -+ minButtonIconRect.center().x() + 3, minButtonIconRect.center().y() + 3); -+ painter->drawLine(minButtonIconRect.center().x() - 2, minButtonIconRect.center().y() + 4, -+ minButtonIconRect.center().x() + 3, minButtonIconRect.center().y() + 4); -+ painter->setPen(textAlphaColor); -+ painter->drawLine(minButtonIconRect.center().x() - 3, minButtonIconRect.center().y() + 3, -+ minButtonIconRect.center().x() - 3, minButtonIconRect.center().y() + 4); -+ painter->drawLine(minButtonIconRect.center().x() + 4, minButtonIconRect.center().y() + 3, -+ minButtonIconRect.center().x() + 4, minButtonIconRect.center().y() + 4); -+ } -+ } -+ // max button -+ if ((titleBar->subControls & SC_TitleBarMaxButton) && (titleBar->titleBarFlags & Qt::WindowMaximizeButtonHint) && -+ !(titleBar->titleBarState & Qt::WindowMaximized)) { -+ QRect maxButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarMaxButton, widget); -+ if (maxButtonRect.isValid()) { -+ bool hover = (titleBar->activeSubControls & SC_TitleBarMaxButton) && (titleBar->state & State_MouseOver); -+ bool sunken = (titleBar->activeSubControls & SC_TitleBarMaxButton) && (titleBar->state & State_Sunken); -+ qt_haiku_draw_mdibutton(painter, titleBar, maxButtonRect, hover, sunken); -+ -+ QRect maxButtonIconRect = maxButtonRect.adjusted(buttonMargin, buttonMargin, -buttonMargin, -buttonMargin); -+ -+ painter->setPen(textColor); -+ painter->drawRect(maxButtonIconRect.adjusted(0, 0, -1, -1)); -+ painter->drawLine(maxButtonIconRect.left() + 1, maxButtonIconRect.top() + 1, -+ maxButtonIconRect.right() - 1, maxButtonIconRect.top() + 1); -+ painter->setPen(textAlphaColor); -+ painter->drawPoint(maxButtonIconRect.topLeft()); -+ painter->drawPoint(maxButtonIconRect.topRight()); -+ painter->drawPoint(maxButtonIconRect.bottomLeft()); -+ painter->drawPoint(maxButtonIconRect.bottomRight()); -+ } -+ } -+ -+ // close button -+ if ((titleBar->subControls & SC_TitleBarCloseButton) && (titleBar->titleBarFlags & Qt::WindowSystemMenuHint)) { -+ QRect closeButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarCloseButton, widget); -+ if (closeButtonRect.isValid()) { -+ bool hover = (titleBar->activeSubControls & SC_TitleBarCloseButton) && (titleBar->state & State_MouseOver); -+ bool sunken = (titleBar->activeSubControls & SC_TitleBarCloseButton) && (titleBar->state & State_Sunken); -+ qt_haiku_draw_mdibutton(painter, titleBar, closeButtonRect, hover, sunken); -+ QRect closeIconRect = closeButtonRect.adjusted(buttonMargin, buttonMargin, -buttonMargin, -buttonMargin); -+ painter->setPen(textAlphaColor); -+ painter->drawLine(closeIconRect.left() + 1, closeIconRect.top(), -+ closeIconRect.right(), closeIconRect.bottom() - 1); -+ painter->drawLine(closeIconRect.left(), closeIconRect.top() + 1, -+ closeIconRect.right() - 1, closeIconRect.bottom()); -+ painter->drawLine(closeIconRect.right() - 1, closeIconRect.top(), -+ closeIconRect.left(), closeIconRect.bottom() - 1); -+ painter->drawLine(closeIconRect.right(), closeIconRect.top() + 1, -+ closeIconRect.left() + 1, closeIconRect.bottom()); -+ painter->drawPoint(closeIconRect.topLeft()); -+ painter->drawPoint(closeIconRect.topRight()); -+ painter->drawPoint(closeIconRect.bottomLeft()); -+ painter->drawPoint(closeIconRect.bottomRight()); -+ -+ painter->setPen(textColor); -+ painter->drawLine(closeIconRect.left() + 1, closeIconRect.top() + 1, -+ closeIconRect.right() - 1, closeIconRect.bottom() - 1); -+ painter->drawLine(closeIconRect.left() + 1, closeIconRect.bottom() - 1, -+ closeIconRect.right() - 1, closeIconRect.top() + 1); -+ } -+ } -+ -+ // normalize button -+ if ((titleBar->subControls & SC_TitleBarNormalButton) && -+ (((titleBar->titleBarFlags & Qt::WindowMinimizeButtonHint) && -+ (titleBar->titleBarState & Qt::WindowMinimized)) || -+ ((titleBar->titleBarFlags & Qt::WindowMaximizeButtonHint) && -+ (titleBar->titleBarState & Qt::WindowMaximized)))) { -+ QRect normalButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarNormalButton, widget); -+ if (normalButtonRect.isValid()) { -+ -+ bool hover = (titleBar->activeSubControls & SC_TitleBarNormalButton) && (titleBar->state & State_MouseOver); -+ bool sunken = (titleBar->activeSubControls & SC_TitleBarNormalButton) && (titleBar->state & State_Sunken); -+ QRect normalButtonIconRect = normalButtonRect.adjusted(buttonMargin, buttonMargin, -buttonMargin, -buttonMargin); -+ qt_haiku_draw_mdibutton(painter, titleBar, normalButtonRect, hover, sunken); -+ -+ QRect frontWindowRect = normalButtonIconRect.adjusted(0, 3, -3, 0); -+ painter->setPen(textColor); -+ painter->drawRect(frontWindowRect.adjusted(0, 0, -1, -1)); -+ painter->drawLine(frontWindowRect.left() + 1, frontWindowRect.top() + 1, -+ frontWindowRect.right() - 1, frontWindowRect.top() + 1); -+ painter->setPen(textAlphaColor); -+ painter->drawPoint(frontWindowRect.topLeft()); -+ painter->drawPoint(frontWindowRect.topRight()); -+ painter->drawPoint(frontWindowRect.bottomLeft()); -+ painter->drawPoint(frontWindowRect.bottomRight()); -+ -+ QRect backWindowRect = normalButtonIconRect.adjusted(3, 0, 0, -3); -+ QRegion clipRegion = backWindowRect; -+ clipRegion -= frontWindowRect; -+ painter->save(); -+ painter->setClipRegion(clipRegion); -+ painter->setPen(textColor); -+ painter->drawRect(backWindowRect.adjusted(0, 0, -1, -1)); -+ painter->drawLine(backWindowRect.left() + 1, backWindowRect.top() + 1, -+ backWindowRect.right() - 1, backWindowRect.top() + 1); -+ painter->setPen(textAlphaColor); -+ painter->drawPoint(backWindowRect.topLeft()); -+ painter->drawPoint(backWindowRect.topRight()); -+ painter->drawPoint(backWindowRect.bottomLeft()); -+ painter->drawPoint(backWindowRect.bottomRight()); -+ painter->restore(); -+ } -+ } -+ -+ // context help button -+ if (titleBar->subControls & SC_TitleBarContextHelpButton -+ && (titleBar->titleBarFlags & Qt::WindowContextHelpButtonHint)) { -+ QRect contextHelpButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarContextHelpButton, widget); -+ if (contextHelpButtonRect.isValid()) { -+ bool hover = (titleBar->activeSubControls & SC_TitleBarContextHelpButton) && (titleBar->state & State_MouseOver); -+ bool sunken = (titleBar->activeSubControls & SC_TitleBarContextHelpButton) && (titleBar->state & State_Sunken); -+ qt_haiku_draw_mdibutton(painter, titleBar, contextHelpButtonRect, hover, sunken); -+ -+ QColor blend; -+ QImage image(qt_titlebar_context_help); -+ QColor alpha = textColor; -+ alpha.setAlpha(128); -+ image.setColor(1, textColor.rgba()); -+ image.setColor(2, alpha.rgba()); -+ painter->setRenderHint(QPainter::SmoothPixmapTransform); -+ painter->drawImage(contextHelpButtonRect.adjusted(4, 4, -4, -4), image); -+ } -+ } -+ -+ // shade button -+ if (titleBar->subControls & SC_TitleBarShadeButton && (titleBar->titleBarFlags & Qt::WindowShadeButtonHint)) { -+ QRect shadeButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarShadeButton, widget); -+ if (shadeButtonRect.isValid()) { -+ bool hover = (titleBar->activeSubControls & SC_TitleBarShadeButton) && (titleBar->state & State_MouseOver); -+ bool sunken = (titleBar->activeSubControls & SC_TitleBarShadeButton) && (titleBar->state & State_Sunken); -+ qt_haiku_draw_mdibutton(painter, titleBar, shadeButtonRect, hover, sunken); -+ QImage image(qt_scrollbar_button_arrow_up); -+ image.setColor(1, textColor.rgba()); -+ painter->drawImage(shadeButtonRect.adjusted(5, 7, -5, -7), image); -+ } -+ } -+ -+ // unshade button -+ if (titleBar->subControls & SC_TitleBarUnshadeButton && (titleBar->titleBarFlags & Qt::WindowShadeButtonHint)) { -+ QRect unshadeButtonRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarUnshadeButton, widget); -+ if (unshadeButtonRect.isValid()) { -+ bool hover = (titleBar->activeSubControls & SC_TitleBarUnshadeButton) && (titleBar->state & State_MouseOver); -+ bool sunken = (titleBar->activeSubControls & SC_TitleBarUnshadeButton) && (titleBar->state & State_Sunken); -+ qt_haiku_draw_mdibutton(painter, titleBar, unshadeButtonRect, hover, sunken); -+ QImage image(qt_scrollbar_button_arrow_down); -+ image.setColor(1, textColor.rgba()); -+ painter->drawImage(unshadeButtonRect.adjusted(5, 7, -5, -7), image); -+ } -+ } -+ -+ if ((titleBar->subControls & SC_TitleBarSysMenu) && (titleBar->titleBarFlags & Qt::WindowSystemMenuHint)) { -+ QRect iconRect = subControlRect(CC_TitleBar, titleBar, SC_TitleBarSysMenu, widget); -+ if (iconRect.isValid()) { -+ if (!titleBar->icon.isNull()) { -+ titleBar->icon.paint(painter, iconRect); -+ } else { -+ QStyleOption tool(0); -+ tool.palette = titleBar->palette; -+ QPixmap pm = standardIcon(SP_TitleBarMenuButton, &tool, widget).pixmap(16, 16); -+ tool.rect = iconRect; -+ painter->save(); -+ drawItemPixmap(painter, iconRect, Qt::AlignCenter, pm); -+ painter->restore(); -+ } -+ } -+ } -+ } -+ painter->restore(); -+ break; -+#ifndef QT_NO_SCROLLBAR -+ case CC_ScrollBar: -+ painter->save(); -+ if (const QStyleOptionSlider *scrollBar = qstyleoption_cast(option)) { -+ bool isEnabled = scrollBar->state & State_Enabled; -+ bool reverse = scrollBar->direction == Qt::RightToLeft; -+ bool horizontal = scrollBar->orientation == Qt::Horizontal; -+ bool sunken = scrollBar->state & State_Sunken; -+ -+ painter->fillRect(option->rect, option->palette.background()); -+ -+ QRect rect = scrollBar->rect; -+ QRect scrollBarSubLine = subControlRect(control, scrollBar, SC_ScrollBarSubLine, widget); -+ QRect scrollBarAddLine = subControlRect(control, scrollBar, SC_ScrollBarAddLine, widget); -+ QRect scrollBarSlider = subControlRect(control, scrollBar, SC_ScrollBarSlider, widget); -+ QRect grooveRect = subControlRect(control, scrollBar, SC_ScrollBarGroove, widget); -+ -+ // paint groove -+ if (scrollBar->subControls & SC_ScrollBarGroove) { -+ painter->setBrush(grooveColor); -+ painter->setPen(Qt::NoPen); -+ if (horizontal) { -+ painter->drawRect(grooveRect); -+ painter->setPen(darkOutline); -+ painter->drawLine(grooveRect.topLeft(), grooveRect.topRight()); -+ painter->drawLine(grooveRect.bottomLeft(), grooveRect.bottomRight()); -+ } else { -+ painter->drawRect(grooveRect); -+ painter->setPen(darkOutline); -+ painter->drawLine(grooveRect.topLeft(), grooveRect.bottomLeft()); -+ painter->drawLine(grooveRect.topRight(), grooveRect.bottomRight()); -+ } -+ } -+ //paint slider -+ if (scrollBar->subControls & SC_ScrollBarSlider) { -+ QRect pixmapRect = scrollBarSlider; -+ if (horizontal) -+ pixmapRect.adjust(-1, 0, 0, -1); -+ else -+ pixmapRect.adjust(0, -1, -1, 0); -+ -+ if (isEnabled) { -+ QLinearGradient gradient(pixmapRect.center().x(), pixmapRect.top(), -+ pixmapRect.center().x(), pixmapRect.bottom()); -+ if (!horizontal) -+ gradient = QLinearGradient(pixmapRect.left(), pixmapRect.center().y(), -+ pixmapRect.right(), pixmapRect.center().y()); -+ -+ if (option->palette.button().gradient()) { -+ gradient.setStops(option->palette.button().gradient()->stops()); -+ } else { -+ if (sunken || (option->state & State_MouseOver && -+ (scrollBar->activeSubControls & SC_ScrollBarSlider))) { -+ gradient.setColorAt(0, gradientStartColor.lighter(110)); -+ gradient.setColorAt(1, gradientStopColor.lighter(110)); -+ } else { -+ gradient.setColorAt(0, gradientStartColor); -+ gradient.setColorAt(1, gradientStopColor); -+ } -+ } -+ painter->setPen(QPen(darkOutline, 0)); -+ painter->setBrush(gradient); -+ painter->drawRect(pixmapRect); -+ -+ -+ //calculate offsets used by highlight and shadow -+ int yoffset, xoffset; -+ if (option->state & State_Horizontal) { -+ xoffset = 0; -+ yoffset = 1; -+ } else { -+ xoffset = 1; -+ yoffset = 0; -+ } -+ //draw slider highlights -+ painter->setPen(QPen(gradientStopColor, 0)); -+ painter->drawLine(scrollBarSlider.left() + xoffset, -+ scrollBarSlider.bottom() - yoffset, -+ scrollBarSlider.right() - xoffset, -+ scrollBarSlider.bottom() - yoffset); -+ painter->drawLine(scrollBarSlider.right() - xoffset, -+ scrollBarSlider.top() + yoffset, -+ scrollBarSlider.right() - xoffset, -+ scrollBarSlider.bottom() - yoffset); -+ -+ //draw slider shadow -+ painter->setPen(QPen(gradientStartColor, 0)); -+ painter->drawLine(scrollBarSlider.left() + xoffset, -+ scrollBarSlider.top() + yoffset, -+ scrollBarSlider.right() - xoffset, -+ scrollBarSlider.top() + yoffset); -+ painter->drawLine(scrollBarSlider.left() + xoffset, -+ scrollBarSlider.top() + yoffset, -+ scrollBarSlider.left() + xoffset, -+ scrollBarSlider.bottom() - yoffset); -+ } else { -+ QLinearGradient gradient(pixmapRect.center().x(), pixmapRect.top(), -+ pixmapRect.center().x(), pixmapRect.bottom()); -+ if (!horizontal) { -+ gradient = QLinearGradient(pixmapRect.left(), pixmapRect.center().y(), -+ pixmapRect.right(), pixmapRect.center().y()); -+ } -+ if (sunken) { -+ gradient.setColorAt(0, gradientStartColor.lighter(110)); -+ gradient.setColorAt(1, gradientStopColor.lighter(110)); -+ } else { -+ gradient.setColorAt(0, gradientStartColor); -+ gradient.setColorAt(1, gradientStopColor); -+ } -+ painter->setPen(darkOutline); -+ painter->setBrush(gradient); -+ painter->drawRect(pixmapRect); -+ } -+ int gripMargin = 4; -+ //draw grips -+ if (horizontal) { -+ for (int i = -3; i< 6 ; i += 3) { -+ painter->setPen(QPen(gripShadow, 1)); -+ painter->drawLine( -+ QPoint(scrollBarSlider.center().x() + i , -+ scrollBarSlider.top() + gripMargin), -+ QPoint(scrollBarSlider.center().x() + i, -+ scrollBarSlider.bottom() - gripMargin)); -+ painter->setPen(QPen(palette.light(), 1)); -+ painter->drawLine( -+ QPoint(scrollBarSlider.center().x() + i + 1, -+ scrollBarSlider.top() + gripMargin ), -+ QPoint(scrollBarSlider.center().x() + i + 1, -+ scrollBarSlider.bottom() - gripMargin)); -+ } -+ } else { -+ for (int i = -3; i < 6 ; i += 3) { -+ painter->setPen(QPen(gripShadow, 1)); -+ painter->drawLine( -+ QPoint(scrollBarSlider.left() + gripMargin , -+ scrollBarSlider.center().y()+ i), -+ QPoint(scrollBarSlider.right() - gripMargin, -+ scrollBarSlider.center().y()+ i)); -+ painter->setPen(QPen(palette.light(), 1)); -+ painter->drawLine( -+ QPoint(scrollBarSlider.left() + gripMargin, -+ scrollBarSlider.center().y() + 1 + i), -+ QPoint(scrollBarSlider.right() - gripMargin, -+ scrollBarSlider.center().y() + 1 + i)); -+ } -+ } -+ } -+ -+ // The SubLine (up/left) buttons -+ if (scrollBar->subControls & SC_ScrollBarSubLine) { -+ //int scrollBarExtent = pixelMetric(PM_ScrollBarExtent, option, widget); -+ QRect pixmapRect = scrollBarSubLine; -+ if (isEnabled ) { -+ QRect fillRect = pixmapRect.adjusted(1, 1, -1, -1); -+ // Gradients -+ if ((scrollBar->activeSubControls & SC_ScrollBarSubLine) && sunken) { -+ qt_haiku_draw_gradient(painter, -+ QRect(fillRect), -+ gradientStopColor.darker(120), -+ gradientStopColor.darker(120), -+ horizontal ? TopDown : FromLeft, option->palette.button()); -+ } else { -+ qt_haiku_draw_gradient(painter, -+ QRect(fillRect), -+ gradientStartColor.lighter(105), -+ gradientStopColor, -+ horizontal ? TopDown : FromLeft, option->palette.button()); -+ } -+ } -+ // Details -+ QImage subButton; -+ QImage subButtonArrow; -+ if (horizontal) { -+ subButton = QImage(reverse ? qt_scrollbar_buttons : qt_scrollbar_buttons); -+ subButtonArrow = QImage(reverse ? qt_scrollbar_button_arrow_right : qt_scrollbar_button_arrow_left); -+ } else { -+ subButton = QImage(qt_scrollbar_buttons); -+ subButtonArrow = QImage(qt_scrollbar_button_arrow_up); -+ } -+ subButton.setColor(1, alphaCornerColor.rgba()); -+ subButton.setColor(2, darkOutline.rgba()); -+ if ((scrollBar->activeSubControls & SC_ScrollBarSubLine) && sunken) { -+ subButton.setColor(3, gradientStopColor.darker(140).rgba()); -+ subButton.setColor(4, gradientStopColor.darker(120).rgba()); -+ } else { -+ subButton.setColor(3, gradientStartColor.lighter(105).rgba()); -+ subButton.setColor(4, gradientStopColor.rgba()); -+ } -+ subButton.setColor(5, scrollBar->palette.text().color().rgba()); -+ painter->drawImage(pixmapRect, subButton); -+ -+ // Arrows -+ QPoint a_pos = pixmapRect.topLeft()+QPoint(4,4); -+ painter->drawImage(a_pos, subButtonArrow); -+ -+ // The AddLine (down/right) button -+ if (scrollBar->subControls & SC_ScrollBarAddLine) { -+ QString addLinePixmapName = uniqueName(QLatin1String("scrollbar_addline"), option, QSize(16, 16)); -+ QRect pixmapRect = scrollBarAddLine; -+ if (isEnabled) { -+ QRect fillRect = pixmapRect.adjusted(1, 1, -1, -1); -+ // Gradients -+ if ((scrollBar->activeSubControls & SC_ScrollBarAddLine) && sunken) { -+ qt_haiku_draw_gradient(painter, -+ fillRect, -+ gradientStopColor.darker(120), -+ gradientStopColor.darker(120), -+ horizontal ? TopDown: FromLeft, option->palette.button()); -+ } else { -+ qt_haiku_draw_gradient(painter, -+ fillRect, -+ gradientStartColor.lighter(105), -+ gradientStopColor, -+ horizontal ? TopDown : FromLeft, option->palette.button()); -+ } -+ } -+ // Details -+ QImage addButton; -+ QImage subButtonArrow; -+ if (horizontal) { -+ addButton = QImage(reverse ? qt_scrollbar_buttons : qt_scrollbar_buttons); -+ subButtonArrow = QImage(reverse ? qt_scrollbar_button_arrow_left : qt_scrollbar_button_arrow_right); -+ } else { -+ addButton = QImage(qt_scrollbar_buttons); -+ subButtonArrow = QImage(qt_scrollbar_button_arrow_down); -+ } -+ addButton.setColor(1, alphaCornerColor.rgba()); -+ addButton.setColor(2, darkOutline.rgba()); -+ if ((scrollBar->activeSubControls & SC_ScrollBarAddLine) && sunken) { -+ addButton.setColor(3, gradientStopColor.darker(140).rgba()); -+ addButton.setColor(4, gradientStopColor.darker(120).rgba()); -+ } else { -+ addButton.setColor(3, gradientStartColor.lighter(105).rgba()); -+ addButton.setColor(4, gradientStopColor.rgba()); -+ } -+ addButton.setColor(5, scrollBar->palette.text().color().rgba()); -+ painter->drawImage(pixmapRect, addButton); -+ -+ QPoint a_pos = pixmapRect.topLeft()+QPoint(4,4); -+ painter->drawImage(a_pos, subButtonArrow); -+ } -+ } -+ } -+ painter->restore(); -+ break;; -+#endif // QT_NO_SCROLLBAR -+#ifndef QT_NO_COMBOBOX -+ case CC_ComboBox: -+ painter->save(); -+ if (const QStyleOptionComboBox *comboBox = qstyleoption_cast(option)) { -+ bool sunken = comboBox->state & State_On; // play dead, if combobox has no items -+ bool isEnabled = (comboBox->state & State_Enabled); -+ bool focus = isEnabled && (comboBox->state & State_HasFocus); -+ QPixmap cache; -+ QString pixmapName = uniqueName(QLatin1String("combobox"), option, comboBox->rect.size()); -+ if (sunken) -+ pixmapName += QLatin1String("-sunken"); -+ if (comboBox->editable) -+ pixmapName += QLatin1String("-editable"); -+ if (isEnabled) -+ pixmapName += QLatin1String("-enabled"); -+ -+ if (!UsePixmapCache || !QPixmapCache::find(pixmapName, cache)) { -+ cache = QPixmap(comboBox->rect.size()); -+ cache.fill(Qt::transparent); -+ QPainter cachePainter(&cache); -+ QRect pixmapRect(0, 0, comboBox->rect.width(), comboBox->rect.height()); -+ QStyleOptionComboBox comboBoxCopy = *comboBox; -+ comboBoxCopy.rect = pixmapRect; -+ -+ QRect rect = pixmapRect; -+ QRect downArrowRect = subControlRect(CC_ComboBox, &comboBoxCopy, -+ SC_ComboBoxArrow, widget); -+ QRect editRect = subControlRect(CC_ComboBox, &comboBoxCopy, -+ SC_ComboBoxEditField, widget); -+ // Draw a push button -+ if (comboBox->editable) { -+ QStyleOptionFrame buttonOption; -+ buttonOption.QStyleOption::operator=(*comboBox); -+ buttonOption.rect = rect; -+ buttonOption.state = comboBox->state & (State_Enabled | State_MouseOver); -+ -+ if (sunken) { -+ buttonOption.state |= State_Sunken; -+ buttonOption.state &= ~State_MouseOver; -+ } -+ -+ drawPrimitive(PE_PanelButtonCommand, &buttonOption, &cachePainter, widget); -+ -+ if (isEnabled) { -+ if(comboBox->state & State_HasFocus) -+ cachePainter.setPen(QPen(mkQColor(ui_color(B_NAVIGATION_BASE_COLOR)), 0)); -+ else -+ cachePainter.setPen(QPen(QColor(129,129,129), 0)); -+ cachePainter.drawRect(rect.adjusted(2, 2, -3, -2)); -+ } else { -+ QColor buttonBgColor = mkQColor(tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), B_LIGHTEN_1_TINT)); -+ QColor dark1BorderColor = mkQColor(tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), B_DARKEN_1_TINT)); -+ cachePainter.fillRect(rect, option->palette.background()); -+ cachePainter.fillRect(rect.adjusted(2, 2, -3, -2), buttonBgColor); -+ cachePainter.setPen(QPen(dark1BorderColor, 0)); -+ cachePainter.drawRect(rect.adjusted(2, 2, -3, -2)); -+ } -+ } else { -+ QStyleOptionButton buttonOption; -+ buttonOption.QStyleOption::operator=(*comboBox); -+ buttonOption.rect = rect; -+ buttonOption.state = comboBox->state & (State_Enabled | State_MouseOver); -+ if (sunken) { -+ buttonOption.state |= State_Sunken; -+ buttonOption.state &= ~State_MouseOver; -+ } -+ drawPrimitive(PE_PanelButtonCommand, &buttonOption, &cachePainter, widget); -+ -+ cachePainter.setPen(buttonShadow.darker(102)); -+ int borderSize = 4; -+ -+ if (!sunken) { -+ if (comboBox->direction == Qt::RightToLeft) { -+ cachePainter.drawLine(QPoint(downArrowRect.right() + 1, downArrowRect.top() + borderSize), -+ QPoint(downArrowRect.right() + 1, downArrowRect.bottom() - borderSize)); -+ cachePainter.setPen(option->palette.light().color()); -+ cachePainter.drawLine(QPoint(downArrowRect.right(), downArrowRect.top() + borderSize), -+ QPoint(downArrowRect.right(), downArrowRect.bottom() - borderSize)); -+ } else { -+ cachePainter.drawLine(QPoint(downArrowRect.left() - 1, downArrowRect.top() + borderSize), -+ QPoint(downArrowRect.left() - 1, downArrowRect.bottom() - borderSize)); -+ cachePainter.setPen(option->palette.light().color()); -+ cachePainter.drawLine(QPoint(downArrowRect.left() , downArrowRect.top() + borderSize), -+ QPoint(downArrowRect.left() , downArrowRect.bottom() - borderSize)); -+ } -+ } else { -+ cachePainter.setPen(dark.lighter(110)); -+ if (comboBox->direction == Qt::RightToLeft) { -+ cachePainter.drawLine(QPoint(downArrowRect.right() + 1, downArrowRect.top() + borderSize), -+ QPoint(downArrowRect.right() + 1, downArrowRect.bottom() - borderSize)); -+ -+ } else { -+ cachePainter.drawLine(QPoint(downArrowRect.left() - 1, downArrowRect.top() + borderSize), -+ QPoint(downArrowRect.left() - 1, downArrowRect.bottom() - borderSize)); -+ } -+ } -+ } -+ -+ -+ if (comboBox->subControls & SC_ComboBoxArrow) { -+ if (comboBox->editable) { -+ // Draw the down arrow -+ QImage downArrow(qt_scrollbar_button_arrow_down); -+ downArrow.setColor(1, comboBox->palette.foreground().color().rgba()); -+ cachePainter.drawImage(downArrowRect.center().x() - downArrow.width() / 2, -+ downArrowRect.center().y() - downArrow.height() / 2 + 1, downArrow); -+ } else { -+ // Draw the up/down arrow -+ QImage upArrow(qt_scrollbar_button_arrow_up); -+ upArrow.setColor(1, comboBox->palette.foreground().color().rgba()); -+ QImage downArrow(qt_scrollbar_button_arrow_down); -+ downArrow.setColor(1, comboBox->palette.foreground().color().rgba()); -+ cachePainter.drawImage(downArrowRect.center().x() - downArrow.width() / 2, -+ downArrowRect.center().y() - upArrow.height() - 1 , upArrow); -+ cachePainter.drawImage(downArrowRect.center().x() - downArrow.width() / 2, -+ downArrowRect.center().y() + 2, downArrow); -+ } -+ } -+ // Draw the focus rect -+ if ((focus && (option->state & State_KeyboardFocusChange)) && !comboBox->editable) { -+ QStyleOptionFocusRect focus; -+ focus.rect = subControlRect(CC_ComboBox, &comboBoxCopy, SC_ComboBoxEditField, widget) -+ .adjusted(0, 2, option->direction == Qt::RightToLeft ? 1 : -1, -2); -+ drawPrimitive(PE_FrameFocusRect, &focus, &cachePainter, widget); -+ } -+ cachePainter.end(); -+ if (UsePixmapCache) -+ QPixmapCache::insert(pixmapName, cache); -+ } -+ painter->drawPixmap(comboBox->rect.topLeft(), cache); -+ } -+ painter->restore(); -+ break; -+#endif // QT_NO_COMBOBOX -+#ifndef QT_NO_GROUPBOX -+ case CC_GroupBox: -+ painter->save(); -+ if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast(option)) { -+ QRect textRect = subControlRect(CC_GroupBox, groupBox, SC_GroupBoxLabel, widget); -+ QRect checkBoxRect = subControlRect(CC_GroupBox, groupBox, SC_GroupBoxCheckBox, widget); -+ bool flat = groupBox->features & QStyleOptionFrameV2::Flat; -+ -+ if(!flat) { -+ if (groupBox->subControls & QStyle::SC_GroupBoxFrame) { -+ QStyleOptionFrameV2 frame; -+ frame.QStyleOption::operator=(*groupBox); -+ frame.features = groupBox->features; -+ frame.lineWidth = groupBox->lineWidth; -+ frame.midLineWidth = groupBox->midLineWidth; -+ frame.rect = subControlRect(CC_GroupBox, option, SC_GroupBoxFrame, widget); -+ -+ painter->save(); -+ QRegion region(groupBox->rect); -+ bool ltr = groupBox->direction == Qt::LeftToRight; -+ region -= checkBoxRect.united(textRect).adjusted(ltr ? -4 : 0, 0, ltr ? 0 : 4, 0); -+ if (!groupBox->text.isEmpty() || groupBox->subControls & SC_GroupBoxCheckBox) -+ painter->setClipRegion(region); -+ frame.palette.setBrush(QPalette::Dark, option->palette.mid().color().lighter(110)); -+ drawPrimitive(PE_FrameGroupBox, &frame, painter); -+ painter->restore(); -+ } -+ } -+ // Draw title -+ if ((groupBox->subControls & QStyle::SC_GroupBoxLabel) && !groupBox->text.isEmpty()) { -+ if (!groupBox->text.isEmpty()) { -+ QColor textColor = groupBox->textColor; -+ if (textColor.isValid()) -+ painter->setPen(textColor); -+ int alignment = int(groupBox->textAlignment); -+ if (!styleHint(QStyle::SH_UnderlineShortcut, option, widget)) -+ alignment |= Qt::TextHideMnemonic; -+ if (flat) { -+ QFont font = painter->font(); -+ font.setBold(true); -+ painter->setFont(font); -+ if (groupBox->subControls & SC_GroupBoxCheckBox) { -+ textRect.adjust(checkBoxRect.right() + 4, 0, checkBoxRect.right() + 4, 0); -+ } -+ } -+ painter->drawText(textRect, Qt::TextShowMnemonic | Qt::AlignLeft| alignment, groupBox->text); -+ } -+ } -+ if (groupBox->subControls & SC_GroupBoxCheckBox) { -+ QStyleOptionButton box; -+ box.QStyleOption::operator=(*groupBox); -+ box.rect = checkBoxRect; -+ drawPrimitive(PE_IndicatorCheckBox, &box, painter, widget); -+ } -+ } -+ painter->restore(); -+ break; -+#endif // QT_NO_GROUPBOX -+#ifndef QT_NO_SLIDER -+ case CC_Slider: -+ painter->save(); -+ if (const QStyleOptionSlider *slider = qstyleoption_cast(option)) { -+ QRect groove = subControlRect(CC_Slider, option, SC_SliderGroove, widget); -+ QRect handle = subControlRect(CC_Slider, option, SC_SliderHandle, widget); -+ QRect ticks = subControlRect(CC_Slider, option, SC_SliderTickmarks, widget); -+ -+ bool ticksAbove = slider->tickPosition & QSlider::TicksAbove; -+ bool ticksBelow = slider->tickPosition & QSlider::TicksBelow; -+ -+ orientation orient = slider->orientation == Qt::Horizontal?B_HORIZONTAL:B_VERTICAL; -+ -+ if (be_control_look != NULL) { -+ QRect r = groove; -+ rgb_color base = ui_color(B_PANEL_BACKGROUND_COLOR); -+ rgb_color fill_color = ui_color(B_PANEL_BACKGROUND_COLOR); -+ uint32 flags = 0; -+ -+ BRect bRect(0.0f, 0.0f, option->rect.width() - 1, option->rect.height() - 1); -+ TemporarySurface surface(bRect); -+ -+ surface.view()->SetHighColor(base); -+ surface.view()->SetLowColor(base); -+ surface.view()->FillRect(bRect); -+ -+ if ((option->subControls & SC_SliderGroove) && groove.isValid()) { -+ r = groove; -+ bRect = BRect(r.x(), r.y(), r.x()+r.width(), r.y()+r.height()); -+ be_control_look->DrawSliderBar(surface.view(), bRect, bRect, base, fill_color, flags, orient); -+ painter->drawImage(r, surface.image()); -+ } -+ -+ if (option->subControls & SC_SliderTickmarks) { -+ int mlocation = B_HASH_MARKS_NONE; -+ if(ticksAbove)mlocation|=B_HASH_MARKS_TOP; -+ if(ticksBelow)mlocation|=B_HASH_MARKS_BOTTOM; -+ int interval = slider->tickInterval<=0?1:slider->tickInterval; -+ int num = 1+((slider->maximum-slider->minimum)/interval); -+ int len = pixelMetric(PM_SliderLength, slider, widget)/2; -+ r=(orient==B_HORIZONTAL)?option->rect.adjusted(len,0,-len,0):option->rect.adjusted(0,len,0,-len); -+ bRect = BRect(r.x(), r.y(), r.x()+r.width(), r.y()+r.height()); -+ be_control_look->DrawSliderHashMarks(surface.view(), bRect, bRect, base, num, (hash_mark_location)mlocation, flags, orient); -+ } -+ -+ if (option->subControls & SC_SliderHandle ) { -+ r=handle.adjusted(1,1,0,0); -+ bRect = BRect(r.x(), r.y(), r.x()+r.width(), r.y()+r.height()); -+ be_control_look->DrawSliderThumb(surface.view(), bRect, bRect, base, flags, orient); -+ } -+ -+ painter->drawImage(slider->rect, surface.image()); -+ } -+ -+ painter->restore(); -+ } -+ break; -+#endif // QT_NO_SLIDER -+ case CC_ToolButton: -+ { -+ if (const QStyleOptionToolButton *toolbutton -+ = qstyleoption_cast(option)) { -+ QRect button; -+ bool flat = !(widget ? qobject_cast(widget->parentWidget()) : 0); -+ bool flat2 = toolbutton->features & QStyleOptionFrameV2::Flat; -+ bool enabled = toolbutton->state & State_Enabled; -+ bool pushed = (toolbutton->state & State_Sunken) || (toolbutton->state & State_On); -+ -+ button = subControlRect(control, toolbutton, SC_ToolButton, widget); -+ -+ painter->save(); -+ if(flat || flat2 || pushed) { -+ qt_haiku_draw_button(painter,button,false,false,pushed,false,enabled); -+ } -+ -+ painter->restore(); -+ } -+ QWindowsStyle::drawComplexControl(control, option, painter, widget); -+ } -+ break; -+ default: -+ QWindowsStyle::drawComplexControl(control, option, painter, widget); -+ break; -+ } -+} -+ -+/*! -+ \reimp -+*/ -+int QHaikuStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const -+{ -+ int ret = -1; -+ switch (metric) { -+ case PM_ButtonDefaultIndicator: -+ ret = 0; -+ break; -+ case PM_ButtonShiftHorizontal: -+ case PM_ButtonShiftVertical: -+ ret = 0; -+ break; -+ case PM_MessageBoxIconSize: -+ ret = 48; -+ break; -+ case PM_ListViewIconSize: -+ ret = 24; -+ break; -+ case PM_DialogButtonsSeparator: -+ case PM_SplitterWidth: -+ ret = 6; -+ break; -+ case PM_ScrollBarSliderMin: -+ ret = 26; -+ break; -+ case PM_MenuPanelWidth: //menu framewidth -+ ret = 2; -+ break; -+ case PM_TitleBarHeight: -+ ret = 24; -+ break; -+ case PM_ScrollBarExtent: -+ ret = 15; -+ break; -+ case PM_SliderThickness: -+ ret = 14; -+ break; -+ case PM_SliderLength: -+ ret = 18; -+ break; -+ case PM_DockWidgetTitleMargin: -+ ret = 1; -+ break; -+ case PM_MenuBarVMargin: -+ ret = 1; -+ break; -+ case PM_DefaultFrameWidth: -+ ret = 2; -+ break; -+ case PM_SpinBoxFrameWidth: -+ ret = 3; -+ break; -+ case PM_MenuBarItemSpacing: -+ ret = 6; -+ case PM_MenuBarHMargin: -+ ret = 0; -+ break; -+ case PM_ToolBarHandleExtent: -+ ret = 9; -+ break; -+ case PM_ToolBarItemSpacing: -+ ret = 2; -+ break; -+ case PM_ToolBarFrameWidth: -+ ret = 0; -+ break; -+ case PM_ToolBarItemMargin: -+ ret = 1; -+ break; -+ case PM_SmallIconSize: -+ ret = 16; -+ break; -+ case PM_ButtonIconSize: -+ ret = 24; -+ break; -+ case PM_MenuVMargin: -+ case PM_MenuHMargin: -+ ret = 0; -+ break; -+ case PM_DockWidgetTitleBarButtonMargin: -+ ret = 4; -+ break; -+ case PM_MaximumDragDistance: -+ return -1; -+ case PM_TabCloseIndicatorWidth: -+ case PM_TabCloseIndicatorHeight: -+ return 20; -+ default: -+ break; -+ } -+ -+ return ret != -1 ? ret : QWindowsStyle::pixelMetric(metric, option, widget); -+} -+ -+/*! -+ \reimp -+*/ -+QSize QHaikuStyle::sizeFromContents(ContentsType type, const QStyleOption *option, -+ const QSize &size, const QWidget *widget) const -+{ -+ QSize newSize = QWindowsStyle::sizeFromContents(type, option, size, widget); -+ switch (type) { -+ case CT_PushButton: -+ if (const QStyleOptionButton *btn = qstyleoption_cast(option)) { -+ if (!btn->text.isEmpty() && newSize.width() < 80) -+ newSize.setWidth(80); -+/* if (!btn->icon.isNull() && btn->iconSize.height() > 16) -+ newSize -= QSize(0, 2);*/ -+ } -+ if (const QPushButton *button = qobject_cast(widget)) { -+ if (qobject_cast(button->parentWidget())) { -+ if (newSize.height() < 32) -+ newSize.setHeight(32); -+ } -+ } -+ break; -+ case CT_GroupBox: -+ case CT_RadioButton: -+ case CT_CheckBox: -+ newSize += QSize(3, 2); -+ break; -+ case CT_ToolButton: -+#ifndef QT_NO_TOOLBAR -+ if (widget && qobject_cast(widget->parentWidget())) -+ newSize += QSize(4, 6); -+#endif // QT_NO_TOOLBAR -+ break; -+ case CT_SpinBox: -+ newSize += QSize(0, -2); -+ break; -+ case CT_ComboBox: -+ newSize += QSize(1, 4); -+ break; -+ case CT_LineEdit: -+ newSize += QSize(0, 2); -+ break; -+ case CT_MenuBarItem: -+ newSize += QSize(0, -2); -+ break; -+ case CT_MenuItem: -+ if (const QStyleOptionMenuItem *menuItem = qstyleoption_cast(option)) { -+ if (menuItem->menuItemType == QStyleOptionMenuItem::Separator) { -+ if (!menuItem->text.isEmpty()) { -+ newSize.setHeight(menuItem->fontMetrics.lineSpacing()); -+ } -+ } -+#ifndef QT_NO_COMBOBOX -+ else if (!menuItem->icon.isNull()) { -+ if (const QComboBox *combo = qobject_cast(widget)) { -+ newSize.setHeight(qMax(combo->iconSize().height() + 2, newSize.height())); -+ } -+ } -+#endif // QT_NO_COMBOBOX -+ } -+ break; -+ case CT_MdiControls: -+ if (const QStyleOptionComplex *styleOpt = qstyleoption_cast(option)) { -+ int width = 0; -+ if (styleOpt->subControls & SC_MdiMinButton) -+ width += 19 + 1; -+ if (styleOpt->subControls & SC_MdiNormalButton) -+ width += 19 + 1; -+ if (styleOpt->subControls & SC_MdiCloseButton) -+ width += 19 + 1; -+ newSize = QSize(width, 19); -+ } else { -+ newSize = QSize(60, 19); -+ } -+ break; -+ default: -+ break; -+ } -+ return newSize; -+} -+ -+/*! -+ \reimp -+*/ -+void QHaikuStyle::polish(QApplication *app) -+{ -+ QWindowsStyle::polish(app); -+} -+ -+/*! -+ \reimp -+*/ -+void QHaikuStyle::polish(QWidget *widget) -+{ -+ QWindowsStyle::polish(widget); -+ if (qobject_cast(widget) -+#ifndef QT_NO_COMBOBOX -+ || qobject_cast(widget) -+#endif -+#ifndef QT_NO_PROGRESSBAR -+ || qobject_cast(widget) -+#endif -+#ifndef QT_NO_SCROLLBAR -+ || qobject_cast(widget) -+#endif -+#ifndef QT_NO_SPLITTER -+ || qobject_cast(widget) -+#endif -+ || qobject_cast(widget) -+#ifndef QT_NO_SPINBOX -+ || qobject_cast(widget) -+#endif -+ || (widget->inherits("QWorkspaceChild")) -+ || (widget->inherits("QDockSeparator")) -+ || (widget->inherits("QDockWidgetSeparator")) -+ ) { -+ widget->setAttribute(Qt::WA_Hover, true); -+ } -+} -+ -+/*! -+ \reimp -+*/ -+void QHaikuStyle::polish(QPalette &pal) -+{ -+ QWindowsStyle::polish(pal); -+ //this is a workaround for some themes such as Human, where the contrast -+ //between text and background is too low. -+ QColor highlight = pal.highlight().color(); -+ QColor highlightText = pal.highlightedText().color(); -+ if (qAbs(qGray(highlight.rgb()) - qGray(highlightText.rgb())) < 150) { -+ if (qGray(highlightText.rgb()) < 128) -+ pal.setBrush(QPalette::Highlight, highlight.lighter(145)); -+ } -+} -+ -+/*! -+ \reimp -+*/ -+void QHaikuStyle::unpolish(QWidget *widget) -+{ -+ QWindowsStyle::unpolish(widget); -+ if (qobject_cast(widget) -+#ifndef QT_NO_COMBOBOX -+ || qobject_cast(widget) -+#endif -+#ifndef QT_NO_PROGRESSBAR -+ || qobject_cast(widget) -+#endif -+#ifndef QT_NO_SCROLLBAR -+ || qobject_cast(widget) -+#endif -+#ifndef QT_NO_SPLITTER -+ || qobject_cast(widget) -+#endif -+ || qobject_cast(widget) -+#ifndef QT_NO_SPINBOX -+ || qobject_cast(widget) -+#endif -+ || (widget->inherits("QWorkspaceChild")) -+ || (widget->inherits("QDockSeparator")) -+ || (widget->inherits("QDockWidgetSeparator")) -+ ) { -+ widget->setAttribute(Qt::WA_Hover, false); -+ } -+} -+ -+/*! -+ \reimp -+*/ -+void QHaikuStyle::unpolish(QApplication *app) -+{ -+ QWindowsStyle::unpolish(app); -+} -+ -+/*! -+ \reimp -+*/ -+QRect QHaikuStyle::subControlRect(ComplexControl control, const QStyleOptionComplex *option, -+ SubControl subControl, const QWidget *widget) const -+{ -+ QRect rect = QWindowsStyle::subControlRect(control, option, subControl, widget); -+ -+ switch (control) { -+#ifndef QT_NO_SLIDER -+ case CC_Slider: -+ if (const QStyleOptionSlider *slider = qstyleoption_cast(option)) { -+ int tickSize = pixelMetric(PM_SliderTickmarkOffset, option, widget); -+ switch (subControl) { -+ case SC_SliderHandle: { -+ if (slider->orientation == Qt::Horizontal) { -+ rect.setHeight(pixelMetric(PM_SliderThickness)); -+ rect.setWidth(pixelMetric(PM_SliderLength)); -+ int centerY = slider->rect.center().y() - rect.height() / 2; -+ if (slider->tickPosition & QSlider::TicksAbove) -+ centerY += tickSize; -+ if (slider->tickPosition & QSlider::TicksBelow) -+ centerY -= tickSize; -+ rect.moveTop(centerY); -+ } else { -+ rect.setWidth(pixelMetric(PM_SliderThickness)); -+ rect.setHeight(pixelMetric(PM_SliderLength)); -+ int centerX = slider->rect.center().x() - rect.width() / 2; -+ if (slider->tickPosition & QSlider::TicksAbove) -+ centerX += tickSize; -+ if (slider->tickPosition & QSlider::TicksBelow) -+ centerX -= tickSize; -+ rect.moveLeft(centerX); -+ } -+ } -+ break; -+ case SC_SliderGroove: { -+ QPoint grooveCenter = slider->rect.center(); -+ if (slider->orientation == Qt::Horizontal) { -+ rect.setHeight(7); -+ if (slider->tickPosition & QSlider::TicksAbove) -+ grooveCenter.ry() += tickSize; -+ if (slider->tickPosition & QSlider::TicksBelow) -+ grooveCenter.ry() -= tickSize; -+ } else { -+ rect.setWidth(7); -+ if (slider->tickPosition & QSlider::TicksAbove) -+ grooveCenter.rx() += tickSize; -+ if (slider->tickPosition & QSlider::TicksBelow) -+ grooveCenter.rx() -= tickSize; -+ } -+ rect.moveCenter(grooveCenter); -+ break; -+ } -+ default: -+ break; -+ } -+ } -+ break; -+#endif // QT_NO_SLIDER -+ case CC_ScrollBar: -+ break; -+#ifndef QT_NO_SPINBOX -+ case CC_SpinBox: -+ if (const QStyleOptionSpinBox *spinbox = qstyleoption_cast(option)) { -+ QSize bs; -+ int center = spinbox->rect.height() / 2; -+ int fw = spinbox->frame ? pixelMetric(PM_SpinBoxFrameWidth, spinbox, widget) : 0; -+ int y = fw; -+ bs.setHeight(qMax(8, spinbox->rect.height()/2 - y)); -+ bs.setWidth(15); -+ int x, lx, rx; -+ x = spinbox->rect.width() - y - bs.width() + 2; -+ lx = fw; -+ rx = x - fw; -+ switch (subControl) { -+ case SC_SpinBoxUp: -+ if (spinbox->buttonSymbols == QAbstractSpinBox::NoButtons) -+ return QRect(); -+ rect = QRect(x, fw, bs.width(), center - fw); -+ break; -+ case SC_SpinBoxDown: -+ if (spinbox->buttonSymbols == QAbstractSpinBox::NoButtons) -+ return QRect(); -+ -+ rect = QRect(x, center, bs.width(), spinbox->rect.bottom() - center - fw + 1); -+ break; -+ case SC_SpinBoxEditField: -+ if (spinbox->buttonSymbols == QAbstractSpinBox::NoButtons) { -+ rect = QRect(lx, fw, spinbox->rect.width() - 2*fw, spinbox->rect.height() - 2*fw); -+ } else { -+ rect = QRect(lx, fw, rx - qMax(fw - 1, 0), spinbox->rect.height() - 2*fw); -+ } -+ break; -+ case SC_SpinBoxFrame: -+ rect = spinbox->rect; -+ default: -+ break; -+ } -+ rect = visualRect(spinbox->direction, spinbox->rect, rect); -+ } -+ break; -+#endif // Qt_NO_SPINBOX -+#ifndef QT_NO_GROUPBOX -+ case CC_GroupBox: -+ if (const QStyleOptionGroupBox *groupBox = qstyleoption_cast(option)) { -+ int topMargin = 0; -+ int topHeight = 0; -+ int verticalAlignment = styleHint(SH_GroupBox_TextLabelVerticalAlignment, groupBox, widget); -+ bool flat = groupBox->features & QStyleOptionFrameV2::Flat; -+ if (!groupBox->text.isEmpty()) { -+ topHeight = groupBox->fontMetrics.height(); -+ if (verticalAlignment & Qt::AlignVCenter) -+ topMargin = topHeight / 2; -+ else if (verticalAlignment & Qt::AlignTop) -+ topMargin = topHeight; -+ } -+ QRect frameRect = groupBox->rect; -+ frameRect.setTop(topMargin); -+ if (subControl == SC_GroupBoxFrame) { -+ return rect; -+ } -+ else if (subControl == SC_GroupBoxContents) { -+ if( flat ) { -+ int margin = 0; -+ int leftMarginExtension = 16; -+ rect = frameRect.adjusted(leftMarginExtension + margin, margin + topHeight, -margin, -margin); -+ } -+ break; -+ } -+ if(flat) { -+ if (const QGroupBox *groupBoxWidget = qobject_cast(widget)) { -+ //Prepare metrics for a bold font -+ QFont font = widget->font(); -+ font.setBold(true); -+ QFontMetrics fontMetrics(font); -+ -+ QSize textRect = fontMetrics.boundingRect(groupBoxWidget->title()).size() + QSize(2, 2); -+ if (subControl == SC_GroupBoxCheckBox) { -+ int indicatorWidth = pixelMetric(PM_IndicatorWidth, option, widget); -+ int indicatorHeight = pixelMetric(PM_IndicatorHeight, option, widget); -+ rect.setWidth(indicatorWidth); -+ rect.setHeight(indicatorHeight); -+ rect.moveTop((fontMetrics.height() - indicatorHeight) / 2 + 2); -+ } else if (subControl == SC_GroupBoxLabel) { -+ rect.setSize(textRect); -+ } -+ } -+ } -+ } -+ return rect; -+#ifndef QT_NO_COMBOBOX -+ case CC_ComboBox: -+ switch (subControl) { -+ case SC_ComboBoxArrow: -+ rect = visualRect(option->direction, option->rect, rect); -+ rect.setRect(rect.right() - 15, rect.top() - 2, -+ 16, rect.height() + 4); -+ rect = visualRect(option->direction, option->rect, rect); -+ break; -+ case SC_ComboBoxEditField: { -+ int frameWidth = pixelMetric(PM_DefaultFrameWidth)+1; -+ rect = visualRect(option->direction, option->rect, rect); -+ rect.setRect(option->rect.left() + frameWidth, option->rect.top() + frameWidth, -+ option->rect.width() - 16 - 2 * frameWidth, -+ option->rect.height() - 2 * frameWidth); -+ if (const QStyleOptionComboBox *box = qstyleoption_cast(option)) { -+ if (!box->editable) { -+ rect.adjust(2, 0, 0, 0); -+ if (box->state & (State_Sunken | State_On)) -+ rect.translate(1, 1); -+ } -+ } -+ rect = visualRect(option->direction, option->rect, rect); -+ break; -+ } -+ default: -+ break; -+ } -+ break; -+#endif // QT_NO_COMBOBOX -+#endif //QT_NO_GROUPBOX -+ case CC_TitleBar: -+ if (const QStyleOptionTitleBar *tb = qstyleoption_cast(option)) { -+ SubControl sc = subControl; -+ QRect &ret = rect; -+ const int indent = 3; -+ const int controlTopMargin = 3; -+ const int controlBottomMargin = 3; -+ const int controlWidthMargin = 2; -+ const int controlHeight = tb->rect.height() - controlTopMargin - controlBottomMargin ; -+ const int delta = controlHeight + controlWidthMargin; -+ int offset = 0; -+ -+ bool isMinimized = tb->titleBarState & Qt::WindowMinimized; -+ bool isMaximized = tb->titleBarState & Qt::WindowMaximized; -+ -+ switch (sc) { -+ case SC_TitleBarLabel: -+ if (tb->titleBarFlags & (Qt::WindowTitleHint | Qt::WindowSystemMenuHint)) { -+ ret = tb->rect; -+ if (tb->titleBarFlags & Qt::WindowSystemMenuHint) -+ ret.adjust(delta, 0, -delta, 0); -+ if (tb->titleBarFlags & Qt::WindowMinimizeButtonHint) -+ ret.adjust(0, 0, -delta, 0); -+ if (tb->titleBarFlags & Qt::WindowMaximizeButtonHint) -+ ret.adjust(0, 0, -delta, 0); -+ if (tb->titleBarFlags & Qt::WindowShadeButtonHint) -+ ret.adjust(0, 0, -delta, 0); -+ if (tb->titleBarFlags & Qt::WindowContextHelpButtonHint) -+ ret.adjust(0, 0, -delta, 0); -+ } -+ break; -+ case SC_TitleBarContextHelpButton: -+ if (tb->titleBarFlags & Qt::WindowContextHelpButtonHint) -+ offset += delta; -+ case SC_TitleBarMinButton: -+ if (!isMinimized && (tb->titleBarFlags & Qt::WindowMinimizeButtonHint)) -+ offset += delta; -+ else if (sc == SC_TitleBarMinButton) -+ break; -+ case SC_TitleBarNormalButton: -+ if (isMinimized && (tb->titleBarFlags & Qt::WindowMinimizeButtonHint)) -+ offset += delta; -+ else if (isMaximized && (tb->titleBarFlags & Qt::WindowMaximizeButtonHint)) -+ offset += delta; -+ else if (sc == SC_TitleBarNormalButton) -+ break; -+ case SC_TitleBarMaxButton: -+ if (!isMaximized && (tb->titleBarFlags & Qt::WindowMaximizeButtonHint)) -+ offset += delta; -+ else if (sc == SC_TitleBarMaxButton) -+ break; -+ case SC_TitleBarShadeButton: -+ if (!isMinimized && (tb->titleBarFlags & Qt::WindowShadeButtonHint)) -+ offset += delta; -+ else if (sc == SC_TitleBarShadeButton) -+ break; -+ case SC_TitleBarUnshadeButton: -+ if (isMinimized && (tb->titleBarFlags & Qt::WindowShadeButtonHint)) -+ offset += delta; -+ else if (sc == SC_TitleBarUnshadeButton) -+ break; -+ case SC_TitleBarCloseButton: -+ if (tb->titleBarFlags & Qt::WindowSystemMenuHint) -+ offset += delta; -+ else if (sc == SC_TitleBarCloseButton) -+ break; -+ ret.setRect(tb->rect.right() - indent - offset, tb->rect.top() + controlTopMargin, -+ controlHeight, controlHeight); -+ break; -+ case SC_TitleBarSysMenu: -+ if (tb->titleBarFlags & Qt::WindowSystemMenuHint) { -+ ret.setRect(tb->rect.left() + controlWidthMargin + indent, tb->rect.top() + controlTopMargin, -+ controlHeight, controlHeight); -+ } -+ break; -+ default: -+ break; -+ } -+ ret = visualRect(tb->direction, tb->rect, ret); -+ } -+ break; -+ default: -+ break; -+ } -+ -+ return rect; -+} -+ -+ -+/*! -+ \reimp -+*/ -+QRect QHaikuStyle::itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const -+{ -+ return QWindowsStyle::itemPixmapRect(r, flags, pixmap); -+} -+ -+/*! -+ \reimp -+*/ -+void QHaikuStyle::drawItemPixmap(QPainter *painter, const QRect &rect, -+ int alignment, const QPixmap &pixmap) const -+{ -+ QWindowsStyle::drawItemPixmap(painter, rect, alignment, pixmap); -+} -+ -+/*! -+ \reimp -+*/ -+QStyle::SubControl QHaikuStyle::hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, -+ const QPoint &pt, const QWidget *w) const -+{ -+ return QWindowsStyle::hitTestComplexControl(cc, opt, pt, w); -+} -+ -+/*! -+ \reimp -+*/ -+QPixmap QHaikuStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, -+ const QStyleOption *opt) const -+{ -+ return QWindowsStyle::generatedIconPixmap(iconMode, pixmap, opt); -+} -+ -+/*! -+ \reimp -+*/ -+int QHaikuStyle::styleHint(StyleHint hint, const QStyleOption *option, const QWidget *widget, -+ QStyleHintReturn *returnData) const -+{ -+ int ret = 0; -+ switch (hint) { -+ case SH_ScrollBar_MiddleClickAbsolutePosition: -+ ret = true; -+ break; -+ case SH_EtchDisabledText: -+ ret = 1; -+ break; -+ case SH_Menu_AllowActiveAndDisabled: -+ ret = false; -+ break; -+ case SH_MainWindow_SpaceBelowMenuBar: -+ ret = 0; -+ break; -+ case SH_MenuBar_MouseTracking: -+ ret = 1; -+ break; -+ case SH_TitleBar_AutoRaise: -+ ret = 1; -+ break; -+ case SH_TitleBar_NoBorder: -+ ret = 1; -+ break; -+ case SH_ItemView_ShowDecorationSelected: -+ ret = true; -+ break; -+ case SH_Table_GridLineColor: -+ if (option) { -+ ret = option->palette.background().color().darker(120).rgb(); -+ break; -+ } -+ case SH_ComboBox_Popup: -+#ifdef QT3_SUPPORT -+ if (widget && widget->inherits("Q3ComboBox")) -+ return 0; -+#endif -+ if (const QStyleOptionComboBox *cmb = qstyleoption_cast(option)) -+ ret = !cmb->editable; -+ else -+ ret = 0; -+ break; -+ case SH_WindowFrame_Mask: -+ ret = 1; -+ if (QStyleHintReturnMask *mask = qstyleoption_cast(returnData)) { -+ //left rounded corner -+ mask->region = option->rect; -+ mask->region -= QRect(option->rect.left(), option->rect.top(), 5, 1); -+ mask->region -= QRect(option->rect.left(), option->rect.top() + 1, 3, 1); -+ mask->region -= QRect(option->rect.left(), option->rect.top() + 2, 2, 1); -+ mask->region -= QRect(option->rect.left(), option->rect.top() + 3, 1, 2); -+ -+ //right rounded corner -+ mask->region -= QRect(option->rect.right() - 4, option->rect.top(), 5, 1); -+ mask->region -= QRect(option->rect.right() - 2, option->rect.top() + 1, 3, 1); -+ mask->region -= QRect(option->rect.right() - 1, option->rect.top() + 2, 2, 1); -+ mask->region -= QRect(option->rect.right() , option->rect.top() + 3, 1, 2); -+ } -+ break; -+ case SH_MessageBox_TextInteractionFlags: -+ ret = Qt::TextSelectableByMouse | Qt::LinksAccessibleByMouse; -+ break; -+ case SH_DialogButtonBox_ButtonsHaveIcons: -+ ret = true; -+ break; -+ case SH_MessageBox_CenterButtons: -+ ret = false; -+ break; -+#ifndef QT_NO_WIZARD -+ case SH_WizardStyle: -+ ret = QWizard::ClassicStyle; -+ break; -+#endif -+ case SH_ItemView_ArrowKeysNavigateIntoChildren: -+ ret = false; -+ break; -+ case SH_Menu_SubMenuPopupDelay: -+ ret = 225; // default from GtkMenu -+ break; -+ default: -+ ret = QWindowsStyle::styleHint(hint, option, widget, returnData); -+ break; -+ } -+ return ret; -+} -+ -+/*! \reimp */ -+QRect QHaikuStyle::subElementRect(SubElement sr, const QStyleOption *opt, const QWidget *w) const -+{ -+ QRect r = QWindowsStyle::subElementRect(sr, opt, w); -+ switch (sr) { -+ case SE_PushButtonFocusRect: -+ r.adjust(0, 1, 0, -1); -+ break; -+ case SE_DockWidgetTitleBarText: { -+ const QStyleOptionDockWidgetV2 *v2 -+ = qstyleoption_cast(opt); -+ bool verticalTitleBar = v2 == 0 ? false : v2->verticalTitleBar; -+ if (verticalTitleBar) { -+ r.adjust(0, 0, 0, -4); -+ } else { -+ if (QApplication::layoutDirection() == Qt::LeftToRight) -+ r.adjust(4, 0, 0, 0); -+ else -+ r.adjust(0, 0, -4, 0); -+ } -+ -+ break; -+ } -+ case SE_ProgressBarContents: -+ r = subElementRect(SE_ProgressBarGroove, opt, w); -+ break; -+ default: -+ break; -+ } -+ return r; -+} -+ -+void QHaikuStylePrivate::lookupIconTheme() const -+{ -+} -+ -+/*! -+ \internal -+*/ -+ -+QPixmap -+haikuIconFromMime(const char *mime, icon_size which) -+{ -+ QPixmap pixmap; -+ BMimeType mtype(mime); -+ BBitmap *bmp = new BBitmap(BRect(0, 0, which - 1, which - 1), B_RGBA32); -+ -+ if (mtype.GetIcon(bmp, which) != B_OK) { -+ BMimeType super; -+ mtype.GetSupertype(&super); -+ if (super.GetIcon(bmp, which) != B_OK) { -+ delete bmp; -+ bmp = NULL; -+ } -+ } -+ -+ if(bmp) { -+ pixmap = QPixmap::fromHaikuBitmap(bmp); -+ delete bmp; -+ } -+ -+ return pixmap; -+} -+ -+QIcon QHaikuStyle::standardIconImplementation(StandardPixmap standardIcon, -+ const QStyleOption *option, -+ const QWidget *widget) const -+{ -+ QIcon icon; -+ QPixmap pixmap; -+ -+ switch (standardIcon) { -+ case SP_ComputerIcon: -+ { -+ icon.addPixmap(haikuIconFromMime("application/x-vnd.Be-root",B_MINI_ICON)); -+ icon.addPixmap(haikuIconFromMime("application/x-vnd.Be-root",B_LARGE_ICON)); -+ break; -+ } -+ default: -+ break; -+ } -+ -+ if (icon.isNull()) -+ icon = QCommonStyle::standardIconImplementation(standardIcon, option, widget); -+ return icon; -+} -+ -+/*! -+ \reimp -+ */ -+QPixmap QHaikuStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, -+ const QWidget *widget) const -+{ -+ return QWindowsStyle::standardPixmap(standardPixmap, opt, widget); -+} -+ -+QT_END_NAMESPACE -+ -+#endif // QT_NO_STYLE_HAIKU || QT_PLUGIN -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle.h 2011-06-13 22:06:43.366477312 +0000 -@@ -0,0 +1,114 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: Qt Software Information (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial Usage -+** Licensees holding valid Qt Commercial licenses may use this file in -+** accordance with the Qt Commercial License Agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Nokia. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain -+** additional rights. These rights are described in the Nokia Qt LGPL -+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -+** package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** If you are unsure which license is appropriate for your use, please -+** contact the sales department at qt-sales@nokia.com. -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QHAIKYSTYLE_H -+#define QHAIKYSTYLE_H -+ -+#include -+ -+QT_BEGIN_HEADER -+ -+QT_BEGIN_NAMESPACE -+ -+QT_MODULE(Gui) -+ -+#if !defined(QT_NO_STYLE_HAIKU) -+ -+class QHaikuStylePrivate; -+class Q_GUI_EXPORT QHaikuStyle : public QWindowsStyle -+{ -+ Q_OBJECT -+ Q_DECLARE_PRIVATE(QHaikuStyle) -+ -+public: -+ QHaikuStyle(); -+ ~QHaikuStyle(); -+ -+ QPalette standardPalette () const; -+ void drawPrimitive(PrimitiveElement elem, -+ const QStyleOption *option, -+ QPainter *painter, const QWidget *widget = 0) const; -+ void drawControl(ControlElement ce, const QStyleOption *option, QPainter *painter, -+ const QWidget *widget) const; -+ int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) const; -+ void drawComplexControl(ComplexControl control, const QStyleOptionComplex *option, -+ QPainter *painter, const QWidget *widget) const; -+ QRect subElementRect(SubElement r, const QStyleOption *opt, const QWidget *widget = 0) const; -+ QSize sizeFromContents(ContentsType type, const QStyleOption *option, -+ const QSize &size, const QWidget *widget) const; -+ SubControl hitTestComplexControl(ComplexControl cc, const QStyleOptionComplex *opt, -+ const QPoint &pt, const QWidget *w = 0) const; -+ QRect subControlRect(ComplexControl cc, const QStyleOptionComplex *opt, -+ SubControl sc, const QWidget *widget) const; -+ QPixmap generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, -+ const QStyleOption *opt) const; -+ int styleHint(StyleHint hint, const QStyleOption *option = 0, const QWidget *widget = 0, -+ QStyleHintReturn *returnData = 0) const; -+ QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const; -+ QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, -+ const QWidget *widget = 0) const; -+ void drawItemPixmap(QPainter *painter, const QRect &rect, -+ int alignment, const QPixmap &pixmap) const; -+ void drawItemText(QPainter *painter, const QRect &rect, -+ int flags, const QPalette &pal, bool enabled, -+ const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const; -+ void polish(QWidget *widget); -+ void polish(QApplication *app); -+ void polish(QPalette &pal); -+ void unpolish(QWidget *widget); -+ void unpolish(QApplication *app); -+ -+protected Q_SLOTS: -+ QIcon standardIconImplementation(StandardPixmap standardIcon, const QStyleOption *option, -+ const QWidget *widget = 0) const; -+ -+protected: -+ QHaikuStyle(QHaikuStylePrivate &dd); -+ -+}; -+ -+#endif // QT_NO_STYLE_HAIKU -+ -+QT_END_NAMESPACE -+ -+QT_END_HEADER -+ -+#endif // QHAIKUSTYLE_H -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/styles/qhaikustyle_p.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qhaikustyle_p.h 2011-06-13 22:06:43.367788032 +0000 -@@ -0,0 +1,82 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: Qt Software Information (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial Usage -+** Licensees holding valid Qt Commercial licenses may use this file in -+** accordance with the Qt Commercial License Agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Nokia. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain -+** additional rights. These rights are described in the Nokia Qt LGPL -+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -+** package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** If you are unsure which license is appropriate for your use, please -+** contact the sales department at qt-sales@nokia.com. -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QHAIKYSTYLE_P_H -+#define QHAIKUSTYLE_P_H -+ -+// -+// W A R N I N G -+// ------------- -+// -+// This file is not part of the Qt API. It exists for the convenience -+// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header -+// file may change from version to version without notice, or even be removed. -+// -+// We mean it. -+// -+ -+#include "qwindowsstyle.h" -+#include "qwindowsstyle_p.h" -+ -+#ifndef QT_NO_STYLE_HAIKU -+ -+QT_BEGIN_NAMESPACE -+ -+class QHaikuStylePrivate : public QWindowsStylePrivate -+{ -+ Q_DECLARE_PUBLIC(QHaikuStyle) -+public: -+ QHaikuStylePrivate() -+ : QWindowsStylePrivate() { -+ animationFps = 24; -+ } -+ -+ ~QHaikuStylePrivate() { -+ } -+ -+ void lookupIconTheme() const; -+}; -+ -+QT_END_NAMESPACE -+ -+#endif // QT_NO_STYLE_HAIKU -+ -+#endif //QHAIKUSTYLE_P_H -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/styles/qstylefactory.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qstylefactory.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/styles/qstylefactory.cpp 2011-03-30 05:19:06.011796480 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/qstylefactory.cpp 2011-06-13 22:06:43.383516672 +0000 -@@ -54,6 +54,9 @@ - #ifndef QT_NO_STYLE_CLEANLOOKS - #include "qcleanlooksstyle.h" - #endif -+#ifndef QT_NO_STYLE_HAIKU -+#include "qhaikustyle.h" -+#endif - #ifndef QT_NO_STYLE_GTK - #include "qgtkstyle.h" - #endif -@@ -172,6 +175,11 @@ QStyle *QStyleFactory::create(const QStr - ret = new QCleanlooksStyle; - else - #endif -+#ifndef QT_NO_STYLE_HAIKU -+ if (style == QLatin1String("haiku")) -+ ret = new QHaikuStyle; -+ else -+#endif - #ifndef QT_NO_STYLE_GTK - if (style == QLatin1String("gtk") || style == QLatin1String("gtk+")) - ret = new QGtkStyle; -@@ -257,6 +265,10 @@ QStringList QStyleFactory::keys() - if (!list.contains(QLatin1String("Cleanlooks"))) - list << QLatin1String("Cleanlooks"); - #endif -+#ifndef QT_NO_STYLE_HAIKU -+ if (!list.contains(QLatin1String("Haiku"))) -+ list << QLatin1String("Haiku"); -+#endif - #ifndef QT_NO_STYLE_MAC - QString mstyle = QLatin1String("Macintosh"); - # ifdef Q_WS_MAC -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/styles/styles.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/styles.pri ---- qt-everywhere-opensource-src-4.7.3/src/gui/styles/styles.pri 2011-03-30 05:19:06.011796480 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/styles/styles.pri 2011-06-13 22:06:43.384827392 +0000 -@@ -188,3 +188,11 @@ contains( styles, s60 ):contains(QT_CONF - } - DEFINES += QT_NO_STYLE_S60 - } -+ -+haiku { -+ HEADERS += styles/qhaikustyle.h -+ HEADERS += styles/qhaikustyle_p.h -+ SOURCES += styles/qhaikustyle.cpp -+} else { -+ DEFINES += QT_NO_STYLE_HAIKU -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont.cpp 2011-03-30 05:19:05.023592960 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont.cpp 2011-06-13 22:06:43.387710976 +0000 -@@ -202,6 +202,8 @@ Q_GUI_EXPORT int qt_defaultDpiY() - dpi = qRound(screen->height() / (screen->physicalHeight() / qreal(25.4))); - #elif defined(Q_OS_SYMBIAN) - dpi = S60->defaultDpiY; -+#elif defined(Q_WS_HAIKU) -+ dpi = 72; - #endif // Q_WS_X11 - - return dpi; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont_haiku.cpp 2011-06-13 22:06:43.389021696 +0000 -@@ -0,0 +1,149 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: Qt Software Information (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial Usage -+** Licensees holding valid Qt Commercial licenses may use this file in -+** accordance with the Qt Commercial License Agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Nokia. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain -+** additional rights. These rights are described in the Nokia Qt LGPL -+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -+** package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** If you are unsure which license is appropriate for your use, please -+** contact the sales department at qt-sales@nokia.com. -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include "qfont.h" -+#include "qfont_p.h" -+#include "qfontengine_p.h" -+#include "qfontinfo.h" -+#include "qfontmetrics.h" -+#include "qpaintdevice.h" -+#include "qstring.h" -+#include -+#include -+#include -+#include "qfontdatabase.h" -+#include -+#include "qtextengine_p.h" -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+float qt_haiku_defaultDpi_x() -+{ -+ return 72.0; -+} -+ -+int qt_haiku_pixelsize(const QFontDef &def, int dpi) -+{ -+ float ret; -+ if(def.pixelSize == -1) -+ ret = def.pointSize * dpi / qt_haiku_defaultDpi_x(); -+ else -+ ret = def.pixelSize; -+ return qRound(ret); -+} -+ -+int qt_haiku_pointsize(const QFontDef &def, int dpi) -+{ -+ float ret; -+ if(def.pointSize < 0) -+ ret = def.pixelSize * qt_haiku_defaultDpi_x() / float(dpi); -+ else -+ ret = def.pointSize; -+ return qRound(ret); -+} -+ -+Q_GUI_EXPORT const char *qt_fontFamilyFromStyleHint(const QFontDef &request) -+{ -+ const char *family = 0; -+ switch (request.styleHint) { -+ case QFont::Helvetica: -+ family = "DejaVu Sans"; -+ break; -+ case QFont::Times: -+ case QFont::OldEnglish: -+ family = "DejaVu Serif"; -+ break; -+ case QFont::Courier: -+ family = "DejaVu Sans Mono"; -+ break; -+ case QFont::System: -+ family = "DejaVu Sans"; -+ break; -+ case QFont::AnyStyle: -+ if (request.fixedPitch) -+ family = "DejaVu Sans Mono"; -+ else -+ family = "DejaVu Sans"; -+ break; -+ } -+ return family; -+} -+ -+/***************************************************************************** -+ QFont member functions -+ *****************************************************************************/ -+ -+void QFont::initialize() -+{ -+} -+ -+void QFont::cleanup() -+{ -+ QFontCache::cleanup(); -+} -+ -+QString QFont::rawName() const -+{ -+ return family(); -+} -+ -+void QFont::setRawName(const QString &name) -+{ -+ setFamily(name); -+} -+ -+QString QFont::defaultFamily() const -+{ -+ return QLatin1String(qt_fontFamilyFromStyleHint(d->request)); -+} -+ -+QString QFont::lastResortFamily() const -+{ -+ return QString::fromLatin1("DejaVu Sans"); -+} -+ -+QString QFont::lastResortFont() const -+{ -+ return QString::fromLatin1("DejaVu Sans"); -+} -+ -+QT_END_NAMESPACE -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfont_p.h 2011-03-30 05:19:05.022806528 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfont_p.h 2011-06-13 22:06:43.390332416 +0000 -@@ -273,6 +273,10 @@ public: - int timer_id; - }; - -+#ifdef Q_WS_HAIKU -+Q_GUI_EXPORT const char *qt_fontFamilyFromStyleHint(const QFontDef &request); -+#endif -+ - QT_END_NAMESPACE - - #endif // QFONT_P_H -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontdatabase.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontdatabase.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontdatabase.cpp 2011-03-30 05:19:05.024903680 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontdatabase.cpp 2011-06-13 22:06:43.392953856 +0000 -@@ -151,10 +151,10 @@ struct QtFontSize - uint yres = 0, uint avgwidth = 0, bool add = false); - unsigned short count : 16; - #endif // Q_WS_X11 --#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) -+#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - QByteArray fileName; - int fileIndex; --#endif // defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) -+#endif // defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - - unsigned short pixelSize : 16; - }; -@@ -230,14 +230,14 @@ struct QtFontStyle - delete [] weightName; - delete [] setwidthName; - #endif --#if defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) -+#if defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - while (count) { - // bitfield count-- in while condition does not work correctly in mwccsym2 - count--; - #ifdef Q_WS_X11 - free(pixelSizes[count].encodings); - #endif --#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) -+#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - pixelSizes[count].fileName.~QByteArray(); - #endif - } -@@ -255,7 +255,7 @@ struct QtFontStyle - const char *weightName; - const char *setwidthName; - #endif // Q_WS_X11 --#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) -+#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - bool antialiased; - #endif - -@@ -301,7 +301,7 @@ QtFontSize *QtFontStyle::pixelSize(unsig - pixelSizes[count].count = 0; - pixelSizes[count].encodings = 0; - #endif --#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) -+#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - new (&pixelSizes[count].fileName) QByteArray; - pixelSizes[count].fileIndex = 0; - #endif -@@ -474,7 +474,7 @@ QtFontFoundry *QtFontFamily::foundry(con - - // ### copied to tools/makeqpf/qpf2.cpp - --#if (defined(Q_WS_QWS) && !defined(QT_NO_FREETYPE)) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) || (defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA)) -+#if (defined(Q_WS_QWS) && !defined(QT_NO_FREETYPE)) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) || (defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA)) - // see the Unicode subset bitfields in the MSDN docs - static int requiredUnicodeBits[QFontDatabase::WritingSystemsCount][2] = { - // Any, -@@ -994,7 +994,7 @@ static void initFontDef(const QtFontDesc - #endif - #endif - --#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) -+#if defined(Q_WS_X11) || defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - static void getEngineData(const QFontPrivate *d, const QFontCache::Key &key) - { - // look for the requested font in the engine data cache -@@ -1057,6 +1057,8 @@ QT_BEGIN_INCLUDE_NAMESPACE - # include "qfontdatabase_qws.cpp" - #elif defined(Q_OS_SYMBIAN) - # include "qfontdatabase_s60.cpp" -+#elif defined(Q_WS_HAIKU) -+# include "qfontdatabase_haiku.cpp" - #endif - QT_END_INCLUDE_NAMESPACE - -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontdatabase_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontdatabase_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontdatabase_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontdatabase_haiku.cpp 2011-06-13 22:06:43.395051008 +0000 -@@ -0,0 +1,373 @@ -+#include "qfontdatabase.h" -+#include //to get qfontdatabase.cpp compiling -+#include "qfont_p.h" -+#include "qfontengine_p.h" -+#include "qfontengine_ft_p.h" -+#include "qfontengine_haiku_p.h" -+#include "qpaintdevice.h" -+#include "qlibrary.h" -+#include "qabstractfileengine.h" -+#include "qendian.h" -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include FT_FREETYPE_H -+#include FT_TYPES_H -+#include FT_TRUETYPE_TABLES_H -+#include FT_LCD_FILTER_H -+ -+struct FaceData -+{ -+ int index; -+ QString familyName; -+ QtFontStyle::Key styleKey; -+ QList systems; -+ bool fixedPitch; -+ bool smoothScalable; -+ QList pixelSizes; -+}; -+ -+// from qfont_haiku.cpp -+extern int qt_haiku_pixelsize(const QFontDef &def, int dpi); -+extern int qt_haiku_pointsize(const QFontDef &def, int dpi); -+extern float qt_haiku_defaultDpi_x(); -+ -+static void initializeDb() -+{ -+ QFontDatabasePrivate *db = privateDb(); -+ if(!db || db->count) -+ return; -+ -+ extern FT_Library qt_getFreetype(); // qfontengine_ft.cpp -+ FT_Library lib = qt_getFreetype(); -+ -+ directory_which FontDirs[] = { -+ B_BEOS_FONTS_DIRECTORY, -+ B_COMMON_FONTS_DIRECTORY, -+ B_USER_FONTS_DIRECTORY -+ }; -+ -+ -+ for(int nfont=0;nfont<3;nfont++) -+ { -+ BPath fontDir; -+ find_directory(FontDirs[nfont],&fontDir); -+ fontDir.Append("ttfonts"); -+ -+ BDirectory dir(fontDir.Path()); -+ if (dir.InitCheck() != B_OK) -+ continue; -+ -+ BEntry ent; -+ char filename[B_FILE_NAME_LENGTH]; -+ int file_index_value = 0; -+ -+ while (dir.GetNextEntry(&ent) == B_NO_ERROR) -+ { -+ QList facedata; -+ -+ ent.GetName(filename); -+ BPath path = BPath(&dir, filename); -+ -+ FT_Long numFaces = 0; -+ FT_Face face; -+ -+ FT_Error rc = FT_New_Face(lib, path.Path(), -1, &face); -+ if (rc == 0) { -+ numFaces = face->num_faces; -+ FT_Done_Face(face); -+ } -+ -+ for (FT_Long idx = 0; idx < numFaces; ++idx) { -+ rc = FT_New_Face(lib, path.Path(), idx, &face); -+ FaceData fdata; -+ fdata.index = idx; -+ fdata.familyName = QString::fromLatin1(face->family_name); -+ fdata.familyName = fdata.familyName.trimmed(); -+ -+ fdata.styleKey.style = face->style_flags & FT_STYLE_FLAG_ITALIC ? QFont::StyleItalic : QFont::StyleNormal; -+ -+ TT_OS2 *os2_table = 0; -+ if (face->face_flags & FT_FACE_FLAG_SFNT) { -+ os2_table = (TT_OS2 *)FT_Get_Sfnt_Table(face, ft_sfnt_os2); -+ } -+ if (os2_table) { -+ // map weight and width values -+ if (os2_table->usWeightClass < 400) -+ fdata.styleKey.weight = QFont::Light; -+ else if (os2_table->usWeightClass < 600) -+ fdata.styleKey.weight = QFont::Normal; -+ else if (os2_table->usWeightClass < 700) -+ fdata.styleKey.weight = QFont::DemiBold; -+ else if (os2_table->usWeightClass < 800) -+ fdata.styleKey.weight = QFont::Bold; -+ else -+ fdata.styleKey.weight = QFont::Black; -+ -+ switch (os2_table->usWidthClass) { -+ case 1: fdata.styleKey.stretch = QFont::UltraCondensed; break; -+ case 2: fdata.styleKey.stretch = QFont::ExtraCondensed; break; -+ case 3: fdata.styleKey.stretch = QFont::Condensed; break; -+ case 4: fdata.styleKey.stretch = QFont::SemiCondensed; break; -+ case 5: fdata.styleKey.stretch = QFont::Unstretched; break; -+ case 6: fdata.styleKey.stretch = QFont::SemiExpanded; break; -+ case 7: fdata.styleKey.stretch = QFont::Expanded; break; -+ case 8: fdata.styleKey.stretch = QFont::ExtraExpanded; break; -+ case 9: fdata.styleKey.stretch = QFont::UltraExpanded; break; -+ default: fdata.styleKey.stretch = QFont::Unstretched; break; -+ } -+ quint32 unicodeRange[4] = { -+ os2_table->ulUnicodeRange1, os2_table->ulUnicodeRange2, -+ os2_table->ulUnicodeRange3, os2_table->ulUnicodeRange4 -+ }; -+ quint32 codePageRange[2] = { -+ os2_table->ulCodePageRange1, os2_table->ulCodePageRange2 -+ }; -+ fdata.systems = determineWritingSystemsFromTrueTypeBits(unicodeRange, codePageRange); -+ } else { -+ fdata.styleKey.weight = face->style_flags & FT_STYLE_FLAG_BOLD ? QFont::Bold : QFont::Normal; -+ fdata.styleKey.stretch = QFont::Unstretched; -+ } -+ -+ fdata.fixedPitch = face->face_flags & FT_FACE_FLAG_FIXED_WIDTH; -+ fdata.smoothScalable = face->face_flags & FT_FACE_FLAG_SCALABLE; -+ -+ if (face->face_flags & FT_FACE_FLAG_FIXED_SIZES) { -+ for (FT_Int i = 0; i < face->num_fixed_sizes; ++i) { -+ fdata.pixelSizes << face->available_sizes[i].height; -+ } -+ } -+ facedata << fdata; -+ -+ if(face) -+ FT_Done_Face(face); -+ } -+ -+ foreach(FaceData cached, facedata) { -+ const QString foundryName; -+ QtFontFamily *family = privateDb()->family(cached.familyName, true); -+ family->fixedPitch = cached.fixedPitch; -+ -+ for (int i = 0; i < cached.systems.count(); ++i) -+ family->writingSystems[cached.systems.at(i)] = QtFontFamily::Supported; -+ -+ QtFontFoundry *foundry = family->foundry(foundryName, true); -+ QtFontStyle *style = foundry->style(cached.styleKey, true); -+ -+ style->antialiased = true; -+ -+ QByteArray file((const char *)path.Path()); -+ -+ if (cached.smoothScalable && !style->smoothScalable) { -+ style->smoothScalable = true; -+ QtFontSize *size = style->pixelSize(SMOOTH_SCALABLE, true); -+ size->fileName = file; -+ size->fileIndex = cached.index; -+ } -+ -+ foreach(unsigned short pixelSize, cached.pixelSizes) { -+ QtFontSize *size = style->pixelSize(pixelSize, true); -+ // the first bitmap style with a given pixel and point size wins -+ if (!size->fileName.isEmpty()) -+ continue; -+ size->fileName = file; -+ size->fileIndex = cached.index; -+ } -+ } -+ file_index_value++; -+ } -+ } -+} -+ -+static inline void load(const QString &family = QString(), int = -1) -+{ -+} -+ -+static void registerFont(QFontDatabasePrivate::ApplicationFont *fnt) -+{ -+} -+ -+static QFontDef fontDescToFontDef(const QFontDef &req, const QtFontDesc &desc) -+{ -+ static long dpi = qt_haiku_defaultDpi_x(); -+ -+ QFontDef fontDef; -+ -+ fontDef.family = desc.family->name; -+ -+ if (desc.size->pixelSize == SMOOTH_SCALABLE) { -+ // scalable font matched, calculate the missing size (points or pixels) -+ fontDef.pointSize = req.pointSize; -+ fontDef.pixelSize = req.pixelSize; -+ if (req.pointSize < 0) { -+ fontDef.pointSize = req.pixelSize * 72. / dpi; -+ } else if (req.pixelSize == -1) { -+ fontDef.pixelSize = qRound(req.pointSize * dpi / 72.); -+ } -+ } else { -+ // non-scalable font matched, calculate both point and pixel size -+ fontDef.pixelSize = desc.size->pixelSize; -+ fontDef.pointSize = desc.size->pixelSize * 72. / dpi; -+ } -+ -+ fontDef.styleStrategy = req.styleStrategy; -+ fontDef.styleHint = req.styleHint; -+ -+ fontDef.weight = desc.style->key.weight; -+ fontDef.fixedPitch = desc.family->fixedPitch; -+ fontDef.style = desc.style->key.style; -+ fontDef.stretch = desc.style->key.stretch; -+ -+ return fontDef; -+} -+ -+static QFontEngine *loadEngine(const QFontDef &req, const QtFontDesc &desc) -+{ -+ // @todo all these fixed so far; make configurable through the Registry -+ // on per-family basis -+ QFontEngineHaiku::HintStyle hintStyle = QFontEngineHaiku::HintFull; -+ bool autoHint = true; -+ QFontEngineFT::SubpixelAntialiasingType subPixel = QFontEngineFT::Subpixel_None; -+ int lcdFilter = FT_LCD_FILTER_DEFAULT; -+ bool useEmbeddedBitmap = true; -+ -+ QFontEngine::FaceId faceId; -+ faceId.filename = desc.size->fileName; -+ faceId.index = desc.size->fileIndex; -+ -+ QFontEngineFT *fe = new QFontEngineHaiku(fontDescToFontDef(req, desc), faceId, -+ desc.style->antialiased, hintStyle, -+ autoHint, subPixel, lcdFilter, -+ useEmbeddedBitmap); -+ Q_ASSERT(fe); -+ if (fe && fe->invalid()) { -+ FM_DEBUG(" --> invalid!\n"); -+ delete fe; -+ fe = 0; -+ } -+ return fe; -+} -+ -+static QFontEngine *loadHaikuFT(const QFontPrivate *d, int script, const QFontDef &req) -+{ -+ // list of families to try -+ QStringList families = familyList(req); -+ -+ const char *styleHint = qt_fontFamilyFromStyleHint(d->request); -+ if (styleHint) -+ families << QLatin1String(styleHint); -+ -+ // add the default family -+ QString defaultFamily = QApplication::font().family(); -+ if (! families.contains(defaultFamily)) -+ families << defaultFamily; -+ -+ // add QFont::defaultFamily() to the list, for compatibility with -+ // previous versions -+ families << QApplication::font().defaultFamily(); -+ -+ // null family means find the first font matching the specified script -+ families << QString(); -+ -+ QtFontDesc desc; -+ QFontEngine *fe = 0; -+ QList blacklistedFamilies; -+ -+ while (!fe) { -+ for (int i = 0; i < families.size(); ++i) { -+ QString family, foundry; -+ parseFontName(families.at(i), foundry, family); -+ QT_PREPEND_NAMESPACE(match)(script, req, family, foundry, -1, &desc, blacklistedFamilies); -+ if (desc.family) -+ break; -+ } -+ if (!desc.family) -+ break; -+ fe = loadEngine(req, desc); -+ if (!fe) -+ blacklistedFamilies.append(desc.familyIndex); -+ } -+ return fe; -+} -+ -+void QFontDatabase::load(const QFontPrivate *d, int script) -+{ -+ Q_ASSERT(script >= 0 && script < QUnicodeTables::ScriptCount); -+ -+ // normalize the request to get better caching -+ QFontDef req = d->request; -+ -+ if (req.pixelSize <= 0) -+ req.pixelSize = qMax(1, qRound(req.pointSize * d->dpi / qt_haiku_defaultDpi_x())); -+ req.pointSize = 0; -+ if (req.weight == 0) -+ req.weight = QFont::Normal; -+ if (req.stretch == 0) -+ req.stretch = 100; -+ -+ QFontCache::Key key(req, d->rawMode ? QUnicodeTables::Common : script, d->screen); -+ if (!d->engineData) -+ getEngineData(d, key); -+ -+ // the cached engineData could have already loaded the engine we want -+ if (d->engineData->engines[script]) -+ return; -+ -+ // set it to the actual pointsize, so QFontInfo will do the right thing -+ req.pointSize = req.pixelSize * qt_haiku_defaultDpi_x() / d->dpi; -+ -+ QFontEngine *fe = QFontCache::instance()->findEngine(key); -+ -+ // qDebug()<<"QFontDatabase::load(2) pixelsize:"<fontDef = req; -+ } else { -+ QMutexLocker locker(fontDatabaseMutex()); -+ if (!privateDb()->count) -+ initializeDb(); -+ fe = loadHaikuFT(d, script, req); -+ } -+ if (!fe) { -+ fe = new QFontEngineBox(req.pixelSize); -+ fe->fontDef = QFontDef(); -+ } -+ } -+ if (fe->symbol || (d->request.styleStrategy & QFont::NoFontMerging)) { -+ for (int i = 0; i < QUnicodeTables::ScriptCount; ++i) { -+ if (!d->engineData->engines[i]) { -+ d->engineData->engines[i] = fe; -+ fe->ref.ref(); -+ } -+ } -+ } else { -+ d->engineData->engines[script] = fe; -+ fe->ref.ref(); -+ } -+ QFontCache::instance()->insertEngine(key, fe); -+} -+ -+ -+bool QFontDatabase::removeApplicationFont(int handle) -+{ -+ return false; -+} -+ -+bool QFontDatabase::removeAllApplicationFonts() -+{ -+ return false; -+} -+ -+bool QFontDatabase::supportsThreadedFontRendering() -+{ -+ return true; -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine.cpp 2011-03-30 05:19:05.028311552 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine.cpp 2011-06-13 22:06:43.396623872 +0000 -@@ -737,7 +737,7 @@ QFontEngineGlyphCache *QFontEngine::glyp - return 0; - } - --#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) -+#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - static inline QFixed kerning(int left, int right, const QFontEngine::KernPair *pairs, int numPairs) - { - uint left_right = (left << 16) + right; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_haiku.cpp 2011-06-13 22:06:43.397934592 +0000 -@@ -0,0 +1,93 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: Qt Software Information (qt-info@nokia.com) -+** -+** Copyright (C) 2009 netlabs.org. OS/2 parts. -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial Usage -+** Licensees holding valid Qt Commercial licenses may use this file in -+** accordance with the Qt Commercial License Agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Nokia. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain -+** additional rights. These rights are described in the Nokia Qt LGPL -+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -+** package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** If you are unsure which license is appropriate for your use, please -+** contact the sales department at qt-sales@nokia.com. -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include "qfontengine_p.h" -+#include "qtextengine_p.h" -+ -+#include "qfontengine_haiku_p.h" -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_FREETYPE -+ -+// ------------------------------------------------------------------ -+// PM FT engine -+// ------------------------------------------------------------------ -+ -+QFontEngineHaiku::QFontEngineHaiku(const QFontDef &fd, const FaceId &faceId, -+ bool antialias, HintStyle hintStyle, -+ bool autoHint, SubpixelAntialiasingType subPixel, -+ int lcdFilter, bool useEmbeddedBitmap) -+ : QFontEngineFT(fd) -+{ -+ subpixelType = subPixel; -+ -+ default_hint_style = (QFontEngineFT::HintStyle)hintStyle; -+ -+#if defined(FT_LOAD_FORCE_AUTOHINT) -+ if (autoHint) -+ default_load_flags |= FT_LOAD_FORCE_AUTOHINT; -+#endif -+ -+ lcdFilterType = lcdFilter; -+ embeddedbitmap = useEmbeddedBitmap; -+ -+ GlyphFormat defaultFormat = Format_None; -+ if (subpixelType != QFontEngineFT::Subpixel_None) -+ defaultFormat = Format_A32; -+ else if (antialias) -+ defaultFormat = Format_A8; -+ else -+ defaultFormat = Format_Mono; -+ -+ init(faceId, antialias, defaultFormat); -+} -+ -+QFontEngineHaiku::~QFontEngineHaiku() -+{ -+ freeGlyphSets(); -+} -+ -+#endif // QT_NO_FREETYPE -+ -+QT_END_NAMESPACE -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_haiku_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_haiku_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_haiku_p.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_haiku_p.h 2011-06-13 22:06:43.398983168 +0000 -@@ -0,0 +1,90 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -+** Contact: Qt Software Information (qt-info@nokia.com) -+** -+** Copyright (C) 2009 netlabs.org. OS/2 parts. -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** Commercial Usage -+** Licensees holding valid Qt Commercial licenses may use this file in -+** accordance with the Qt Commercial License Agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and Nokia. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain -+** additional rights. These rights are described in the Nokia Qt LGPL -+** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -+** package. -+** -+** GNU General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU -+** General Public License version 3.0 as published by the Free Software -+** Foundation and appearing in the file LICENSE.GPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU General Public License version 3.0 requirements will be -+** met: http://www.gnu.org/copyleft/gpl.html. -+** -+** If you are unsure which license is appropriate for your use, please -+** contact the sales department at qt-sales@nokia.com. -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QFONTENGINE_HAIKU_P_H -+#define QFONTENGINE_HAIKU_P_H -+ -+// -+// W A R N I N G -+// ------------- -+// -+// This file is not part of the Qt API. It exists purely as an -+// implementation detail. This header file may change from version to -+// version without notice, or even be removed. -+// -+// We mean it. -+// -+ -+#include -+ -+#ifdef QT_NO_FREETYPE -+# error "The OS/2 version of Qt requires FreeType support, but QT_NO_FREETYPE " \ -+ "is defined!" -+#endif -+ -+QT_BEGIN_NAMESPACE -+ -+#ifndef QT_NO_FREETYPE -+ -+class Q_GUI_EXPORT QFontEngineHaiku : public QFontEngineFT -+{ -+public: -+ enum HintStyle { -+ HintNone = QFontEngineFT::HintNone, -+ HintLight = QFontEngineFT::HintLight, -+ HintMedium = QFontEngineFT::HintMedium, -+ HintFull = QFontEngineFT::HintFull -+ }; -+ -+ explicit QFontEngineHaiku(const QFontDef &fd, const FaceId &faceId, -+ bool antialias, HintStyle hintStyle, -+ bool autoHint, SubpixelAntialiasingType subPixel, -+ int lcdFilter, bool useEmbeddedBitmap); -+ ~QFontEngineHaiku(); -+}; -+ -+#endif -+ -+QT_END_NAMESPACE -+ -+#endif // QFONTENGINE_HAIKU_P_H -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/text/qfontengine_p.h 2011-03-30 05:19:05.031457280 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/qfontengine_p.h 2011-06-13 22:06:43.400556032 +0000 -@@ -168,7 +168,7 @@ public: - virtual void recalcAdvances(QGlyphLayout *, QTextEngine::ShaperFlags) const {} - virtual void doKerning(QGlyphLayout *, QTextEngine::ShaperFlags) const; - --#if !defined(Q_WS_X11) && !defined(Q_WS_WIN) && !defined(Q_WS_MAC) && !defined(Q_OS_SYMBIAN) -+#if !defined(Q_WS_X11) && !defined(Q_WS_WIN) && !defined(Q_WS_MAC) && !defined(Q_OS_SYMBIAN) && !defined(Q_WS_HAIKU) - virtual void draw(QPaintEngine *p, qreal x, qreal y, const QTextItemInt &si) = 0; - #endif - virtual void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int nglyphs, -@@ -237,7 +237,7 @@ public: - bool symbol; - mutable HB_FontRec hbFont; - mutable HB_Face hbFace; --#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) -+#if defined(Q_WS_WIN) || defined(Q_WS_X11) || defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN) || defined(Q_WS_HAIKU) - struct KernPair { - uint left_right; - QFixed adjust; -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/text/text.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/text.pri ---- qt-everywhere-opensource-src-4.7.3/src/gui/text/text.pri 2011-03-30 05:19:05.029622272 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/text/text.pri 2011-06-13 22:06:43.401866752 +0000 -@@ -203,5 +203,15 @@ contains(QT_CONFIG, fontconfig) { - CONFIG += opentype - } - -+haiku*: { -+ HEADERS += \ -+ text/qfontengine_ft_p.h \ -+ text/qfontengine_haiku_p.h -+ SOURCES += \ -+ text/qfont_haiku.cpp \ -+ text/qfontengine_ft.cpp \ -+ text/qfontengine_haiku.cpp -+} -+ - DEFINES += QT_NO_OPENTYPE - INCLUDEPATH += ../3rdparty/harfbuzz/src -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qdesktopservices.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qdesktopservices.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/util/qdesktopservices.cpp 2011-03-30 05:19:06.001310720 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qdesktopservices.cpp 2011-06-13 22:06:43.403439616 +0000 -@@ -55,6 +55,8 @@ - #include "qdesktopservices_mac.cpp" - #elif defined(Q_OS_SYMBIAN) - #include "qdesktopservices_s60.cpp" -+#elif defined(Q_WS_HAIKU) -+#include "qdesktopservices_haiku.cpp" - #endif - - #include -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qdesktopservices_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qdesktopservices_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/util/qdesktopservices_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qdesktopservices_haiku.cpp 2011-06-13 22:06:43.404750336 +0000 -@@ -0,0 +1,81 @@ -+#include "qdesktopservices.h" -+#include "qdir.h" -+#include "qurl.h" -+ -+#ifndef QT_NO_DESKTOPSERVICES -+ -+#include -+ -+QT_BEGIN_NAMESPACE -+ -+static bool openDocument(const QUrl &file) -+{ -+ QString cmd = QLatin1String("open ") + file.toString(); -+ system((cmd.toUtf8()).data()); -+ return true; -+} -+ -+static bool launchWebBrowser(const QUrl &url) -+{ -+ QString cmd = QLatin1String("open ") + url.toString(); -+ system((cmd.toUtf8()).data()); -+ return true; -+} -+ -+QString QDesktopServices::storageLocation(StandardLocation type) -+{ -+ if (type == QDesktopServices::HomeLocation) -+ return QLatin1String("/boot/home"); -+ if (type == QDesktopServices::TempLocation) -+ return QDir::tempPath(); -+ -+ if (type == QDesktopServices::CacheLocation) { -+ return QDir::homePath() + QLatin1String("/cache"); -+ } -+ -+ if (type == QDesktopServices::DataLocation) { -+ return QDir::homePath() + QLatin1String("/data"); -+ } -+ -+ QDir emptyDir; -+ QString path; -+ switch (type) { -+ case DesktopLocation: -+ path = QLatin1String("/boot/home/Desktop"); -+ break; -+ case DocumentsLocation: -+ path = QLatin1String("/boot/home/Documents"); -+ break; -+ case PicturesLocation: -+ path = QLatin1String("/boot/home/Pictures"); -+ break; -+ -+ case FontsLocation: -+ path = QLatin1String("/boot/system/data/fonts/ttfonts"); -+ break; -+ -+ case MusicLocation: -+ path = QLatin1String("/boot/home/Music"); -+ break; -+ -+ case MoviesLocation: -+ path = QLatin1String("/boot/home/Videos"); -+ break; -+ -+ case ApplicationsLocation: -+ default: -+ break; -+ } -+ return path; -+} -+ -+QString QDesktopServices::displayName(StandardLocation type) -+{ -+ Q_UNUSED(type); -+ return QString(); -+} -+ -+ -+QT_END_NAMESPACE -+ -+#endif // QT_NO_DESKTOPSERVICES -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon.cpp 2011-03-30 05:19:06.066584576 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon.cpp 2011-06-13 22:06:43.406323200 +0000 -@@ -573,7 +573,19 @@ void QBalloonTip::balloon(const QPoint& - } - - QPainterPath path; --#if defined(QT_NO_XSHAPE) && defined(Q_WS_X11) -+#if defined(Q_WS_HAIKU) -+ path.moveTo(0, 0); -+ path.lineTo(sz.width() - 1, 0); -+ path.lineTo(sz.width() - 1, sz.height() - 1); -+ path.lineTo(0, sz.height() - 1); -+ path.lineTo(0, 0); -+ int dx = pos.x(),dy = pos.y(); -+ if(pos.x()+sz.width() > scr.right()) -+ dx=pos.x()-sz.width(); -+ if(pos.y()+sz.height() > scr.bottom()) -+ dy=pos.y()-sz.height(); -+ move(dx,dy); -+#elif defined(QT_NO_XSHAPE) && defined(Q_WS_X11) - // XShape is required for setting the mask, so we just - // draw an ugly square when its not available - path.moveTo(0, 0); -@@ -581,7 +593,7 @@ void QBalloonTip::balloon(const QPoint& - path.lineTo(sz.width() - 1, sz.height() - 1); - path.lineTo(0, sz.height() - 1); - path.lineTo(0, 0); -- move(qMax(pos.x() - sz.width(), scr.left()), pos.y()); -+ move(qMax(pos.x() - sz.width(), scr.left()), pos.y()); - #else - path.moveTo(ml + rc, mt); - if (arrowAtTop && arrowAtLeft) { -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_haiku.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_haiku.cpp ---- qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_haiku.cpp 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_haiku.cpp 2011-06-13 22:06:43.408158208 +0000 -@@ -0,0 +1,482 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -+** All rights reserved. -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** No Commercial Usage -+** This file contains pre-release code and may not be distributed. -+** You may use this file in accordance with the terms and conditions -+** contained in the Technology Preview License Agreement accompanying -+** this package. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain additional -+** rights. These rights are described in the Nokia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** If you have questions regarding the use of this file, please contact -+** Nokia at qt-info@nokia.com. -+** -+** -+** -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#include "qsystemtrayicon_p.h" -+ -+#ifndef QT_NO_SYSTEMTRAYICON -+ -+QT_BEGIN_NAMESPACE -+ -+#include "qapplication.h" -+#include "qsystemtrayicon.h" -+#include "qdebug.h" -+#include "qcolor.h" -+#include "qfileinfo.h" -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+#define TRAY_MOUSEDOWN 1 -+#define TRAY_MOUSEUP 2 -+ -+#define NF_NONE 0 -+#define NF_QT 1 -+#define NF_NATIVE 2 -+ -+#define maxTipLength 128 -+ -+#define DBAR_SIGNATURE "application/x-vnd.Be-TSKB" -+ -+static int32 notifyMode = NF_NONE; -+ -+QSystemTrayIconLooper::QSystemTrayIconLooper() : QObject(), BLooper("traylooper") -+{ -+} -+ -+thread_id -+QSystemTrayIconLooper::Run(void) -+{ -+ thread_id Thread = BLooper::Run(); -+ return Thread; -+} -+ -+void -+QSystemTrayIconLooper::MessageReceived(BMessage* theMessage) -+{ -+ if( theMessage->what == 'TRAY' || -+ theMessage->what == 'PULS' || -+ theMessage->what == 'LIVE') { -+ BMessage *mes = new BMessage(*theMessage); -+ emit sendHaikuMessage(mes); -+ } -+ BLooper::MessageReceived(theMessage); -+} -+ -+QSystemTrayIconSys::QSystemTrayIconSys(QSystemTrayIcon *object) -+ : ReplicantId(0), q(object), ignoreNextMouseRelease(false), LiveFactor(0) -+{ -+ Looper = new QSystemTrayIconLooper(); -+ Looper->Run(); -+ -+ pulse = new BMessageRunner(BMessenger(NULL, Looper),new BMessage('PULS'),1000000); -+ -+ InstallIcon(); -+ -+ QObject::connect(Looper,SIGNAL(sendHaikuMessage(BMessage *)),this,SLOT(HaikuEvent(BMessage *)),Qt::QueuedConnection); -+} -+ -+QSystemTrayIconSys::~QSystemTrayIconSys() -+{ -+ BDeskbar deskbar; -+ if(ReplicantId>0) -+ deskbar.RemoveItem(ReplicantId); -+ if(pulse) -+ delete pulse; -+ if(Looper->Lock()) -+ Looper->Quit(); -+} -+ -+void -+QSystemTrayIconSys::InstallIcon(void) -+{ -+ ReplicantId = DeskBarLoadIcon(); -+ -+ QString appName = QFileInfo(QApplication::applicationFilePath()).fileName(); -+ BString app_name((const char *)(appName.toUtf8())); -+ -+ BMessage mes('MSGR'); -+ QSystemTrayIconSys *sys=this; -+ mes.AddMessenger("messenger",BMessenger(NULL,Looper)); -+ mes.AddData("qtrayobject",B_ANY_TYPE,&sys,sizeof(void*)); -+ mes.AddString( "application_name",app_name); -+ -+ SendMessageToReplicant(&mes); -+} -+ -+void QSystemTrayIconSys::HaikuEvent(BMessage *m) -+{ -+ if(m->what == 'PULS') { -+ LiveFactor--; -+ if(LiveFactor<-5) { //Reinstallation time -+ LiveFactor = 0; -+ ReplicantId = 0; -+ InstallIcon(); -+ LiveFactor = 0; -+ UpdateIcon(); -+ UpdateTooltip(); -+ } -+ } -+ if(m->what == 'LIVE') { -+ LiveFactor++; -+ BRect rect; -+ if(m->FindRect("rect",&rect)==B_OK) { -+ shelfRect.setRect(rect.left, rect.top, rect.Width(), rect.Height()); -+ } -+ } -+ if(m->what == 'TRAY') { -+ int32 event = 0; -+ BPoint point(0,0); -+ int32 buttons = 0, -+ clicks = 0; -+ -+ m->FindInt32("event",&event); -+ m->FindPoint("point",&point); -+ m->FindInt32("buttons",&buttons); -+ m->FindInt32("clicks",&clicks); -+ -+ switch(event) { -+ case TRAY_MOUSEUP: -+ { -+ if(buttons==B_PRIMARY_MOUSE_BUTTON) { -+ if (ignoreNextMouseRelease) -+ ignoreNextMouseRelease = false; -+ else -+ emit q->activated(QSystemTrayIcon::Trigger); -+ break; -+ } -+ if(buttons==B_TERTIARY_MOUSE_BUTTON) { -+ emit q->activated(QSystemTrayIcon::MiddleClick); -+ break; -+ } -+ if(buttons==B_SECONDARY_MOUSE_BUTTON) { -+ QPoint gpos = QPoint(point.x,point.y); -+ if (q->contextMenu()) { -+ q->contextMenu()->popup(gpos); -+ -+ BScreen screen(NULL); -+ QRect desktopRect( screen.Frame().left, screen.Frame().top, -+ screen.Frame().right, screen.Frame().bottom); -+ int maxY = desktopRect.y() + desktopRect.height() - q->contextMenu()->height(); -+ if (gpos.y() > maxY) { -+ gpos.ry() = maxY; -+ q->contextMenu()->move(gpos); -+ } -+ } -+ emit q->activated(QSystemTrayIcon::Context); -+ break; -+ } -+ } -+ break; -+ case TRAY_MOUSEDOWN: -+ { -+ if(buttons==B_PRIMARY_MOUSE_BUTTON && clicks==2) { -+ ignoreNextMouseRelease = true; -+ emit q->activated(QSystemTrayIcon::DoubleClick); -+ break; -+ } -+ } -+ break; -+ default: -+ break; -+ } -+ } -+} -+ -+void QSystemTrayIconSys::UpdateTooltip() -+{ -+ QString tip = q->toolTip(); -+ -+ BString tipStr(""); -+ -+ if (!tip.isNull()) { -+ tip = tip.left(maxTipLength - 1) + QChar(); -+ const char *str = (const char *)(tip.toUtf8()); -+ tipStr.SetTo(str); -+ } -+ -+ BMessage *mes = new BMessage('TTIP'); -+ mes->AddString("tooltip",tipStr.String()); -+ SendMessageToReplicant(mes); -+} -+ -+void QSystemTrayIconSys::UpdateIcon() -+{ -+ QIcon qicon = q->icon(); -+ if (qicon.isNull()) -+ return; -+ -+ QSize size = qicon.actualSize(QSize(16, 16)); -+ QPixmap pm = qicon.pixmap(size); -+ if (pm.isNull()) -+ return; -+ -+ BBitmap *icon = pm.toHaikuBitmap(); -+ if(icon) { -+ BMessage bits(B_ARCHIVED_OBJECT); -+ icon->Archive(&bits); -+ BMessage *mes = new BMessage('BITS'); -+ mes->AddMessage("icon",&bits); -+ bits.MakeEmpty(); -+ SendMessageToReplicant(mes); -+ delete icon; -+ } -+ UpdateTooltip(); -+} -+ -+BMessenger -+QSystemTrayIconSys::GetShelfMessenger(void) -+{ -+ BMessenger aResult; -+ status_t aErr = B_OK; -+ BMessenger aDeskbar(DBAR_SIGNATURE, -1, &aErr); -+ if (aErr != B_OK)return aResult; -+ -+ BMessage aMessage(B_GET_PROPERTY); -+ -+ aMessage.AddSpecifier("Messenger"); -+ aMessage.AddSpecifier("Shelf"); -+ aMessage.AddSpecifier("View", "Status"); -+ aMessage.AddSpecifier("Window", "Deskbar"); -+ -+ BMessage aReply; -+ -+ if (aDeskbar.SendMessage(&aMessage, &aReply, 500000, 500000) == B_OK) -+ aReply.FindMessenger("result", &aResult); -+ return aResult; -+} -+ -+status_t -+QSystemTrayIconSys::SendMessageToReplicant(BMessage *msg) -+{ -+ if(ReplicantId<=0) -+ return B_ERROR; -+ -+ BMessage aReply; -+ status_t aErr = B_OK; -+ -+ msg->AddInt32( "what2", msg->what ); -+ msg->what = B_SET_PROPERTY; -+ -+ BMessage uid_specifier(B_ID_SPECIFIER); -+ -+ msg->AddSpecifier("View"); -+ uid_specifier.AddInt32("id", ReplicantId); -+ uid_specifier.AddString("property", "Replicant"); -+ msg->AddSpecifier(&uid_specifier); -+ -+ aErr = GetShelfMessenger().SendMessage( msg, (BHandler*)NULL, 500000 ); -+ return aErr; -+} -+ -+int32 -+QSystemTrayIconSys::ExecuteCommand(char *command) -+{ -+ FILE *fpipe; -+ char line[256]; -+ if ( !(fpipe = (FILE*)popen(command,"r")) ) -+ return -1; -+ -+ fgets( line, sizeof line, fpipe); -+ pclose(fpipe); -+ -+ int res = atoi(line); -+ return res; -+} -+ -+int32 -+QSystemTrayIconSys::DeskBarLoadIcon(team_id tid) -+{ -+ char cmd[256]; -+ sprintf(cmd,"qsystray %d",(int)tid); -+ int32 id = ExecuteCommand(cmd); -+ return id; -+} -+ -+int32 -+QSystemTrayIconSys::DeskBarLoadIcon(void) -+{ -+ thread_info threadInfo; -+ status_t error = get_thread_info(find_thread(NULL), &threadInfo); -+ if (error != B_OK) { -+ fprintf(stderr, "Failed to get info for the current thread: %s\n", strerror(error)); -+ return -1; -+ } -+ team_id sTeam = threadInfo.team; -+ -+ return DeskBarLoadIcon(sTeam); -+} -+ -+void QSystemTrayIconPrivate::install_sys() -+{ -+ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::install_sys \n"); -+ Q_Q(QSystemTrayIcon); -+ if (!sys) { -+ sys = new QSystemTrayIconSys(q); -+ sys->UpdateIcon(); -+ } -+ supportsMessages_sys(); -+} -+ -+void QSystemTrayIconPrivate::showMessage_sys(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon type, int timeOut) -+{ -+ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::showMessage_sys()\n"); -+ -+ if(notifyMode == NF_QT) { -+ QPoint point(sys->shelfRect.x(),sys->shelfRect.y()); -+ -+ BDeskbar deskbar; -+ BRect deskRect = deskbar.Frame(); -+ BScreen screen(B_MAIN_SCREEN_ID); -+ -+ switch(deskbar.Location()) -+ { -+ case B_DESKBAR_TOP: -+ point.setX(screen.Frame().Width()-8); -+ point.setY(deskRect.Height()+8); -+ break; -+ case B_DESKBAR_RIGHT_TOP: -+ point.setX(screen.Frame().Width()-deskRect.Width()-8); -+ point.setY(8); -+ break; -+ case B_DESKBAR_BOTTOM: -+ point.setX(screen.Frame().Width()-8); -+ point.setY(screen.Frame().Height()-deskRect.Height()-8); -+ break; -+ case B_DESKBAR_LEFT_BOTTOM: -+ point.setX(deskRect.Width()+8); -+ point.setY(screen.Frame().Height()-8); -+ break; -+ case B_DESKBAR_RIGHT_BOTTOM: -+ point.setX(deskRect.Width()-deskRect.Width()-8); -+ point.setY(screen.Frame().Height()-8); -+ break; -+ case B_DESKBAR_LEFT_TOP: -+ point.setX(deskRect.Width()+8); -+ point.setY(8); -+ break; -+ } -+ QBalloonTip::showBalloon(type, title, message, sys->q, point, timeOut, false); -+ } -+ if(notifyMode == NF_NATIVE) { -+ QString cmd; -+ QString stitle(title); -+ stitle.replace(L'"',"''"); -+ stitle.remove(L'\r'); -+ stitle.remove(L'\n'); -+ -+ QString smessage(message); -+ smessage.replace(L'"',"''"); -+ smessage.remove(L'\r'); -+ smessage.remove(L'\n'); -+ -+ cmd = QString("notify --app \"%1\" --type %2 --title \"%3\" --timeout %4 \"%5\"") -+ .arg(QFileInfo(QApplication::applicationFilePath()).fileName()) -+ .arg(type==QSystemTrayIcon::Warning?"important":type==QSystemTrayIcon::Critical?"error":"information") -+ .arg(stitle) -+ .arg(timeOut/1000) -+ .arg(smessage); -+ -+ const char *str = (const char *)(cmd.toUtf8()); -+ system(str); -+ } -+} -+ -+QRect QSystemTrayIconPrivate::geometry_sys() const -+{ -+ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::geometry_sys \n"); -+ return sys->shelfRect; -+} -+ -+void QSystemTrayIconPrivate::remove_sys() -+{ -+ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::remove_sys \n"); -+ if(sys) { -+ delete sys; -+ sys = NULL; -+ } -+} -+ -+void QSystemTrayIconPrivate::updateIcon_sys() -+{ -+ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::updateIcon_sys\n"); -+ if (sys) { -+ sys->UpdateIcon(); -+ } -+} -+ -+void QSystemTrayIconPrivate::updateMenu_sys() -+{ -+ fprintf(stderr, "Unimplemented: QSystemTrayIconPrivate::updateMenu_sys\n"); -+} -+ -+void QSystemTrayIconPrivate::updateToolTip_sys() -+{ -+ fprintf(stderr, "Reimplemented: QSystemTrayIconPrivate::updateToolTip_sys\n"); -+ if (sys) { -+ sys->UpdateTooltip(); -+ } -+} -+ -+bool QSystemTrayIconPrivate::isSystemTrayAvailable_sys() -+{ -+ supportsMessages_sys(); -+ QFileInfo qsystrayfile("/boot/common/bin/qsystray"); -+ return qsystrayfile.exists(); -+} -+ -+bool QSystemTrayIconPrivate::supportsMessages_sys() -+{ -+ QFileInfo notifyfile("/bin/notify"); -+ if(notifyfile.exists()) { -+ notifyMode = NF_NATIVE; -+ } else { -+ notifyMode = NF_QT; -+ } -+ return true; -+} -+ -+QT_END_NAMESPACE -+ -+#endif // QT_NO_SYSTEMTRAYICON -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_haiku.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_haiku.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_haiku.h 1970-01-01 00:00:00.000000000 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_haiku.h 2011-06-13 22:06:43.408944640 +0000 -@@ -0,0 +1,116 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). -+** All rights reserved. -+** Contact: Nokia Corporation (qt-info@nokia.com) -+** -+** This file is part of the QtGui module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL$ -+** No Commercial Usage -+** This file contains pre-release code and may not be distributed. -+** You may use this file in accordance with the terms and conditions -+** contained in the Technology Preview License Agreement accompanying -+** this package. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 as published by the Free Software -+** Foundation and appearing in the file LICENSE.LGPL included in the -+** packaging of this file. Please review the following information to -+** ensure the GNU Lesser General Public License version 2.1 requirements -+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** In addition, as a special exception, Nokia gives you certain additional -+** rights. These rights are described in the Nokia Qt LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** If you have questions regarding the use of this file, please contact -+** Nokia at qt-info@nokia.com. -+** -+** -+** -+** -+** -+** -+** -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QSYSTRAYICONHAIKU_H -+#define QSYSTRAYICONHAIKU_H -+ -+#include -+#include -+#include -+#include "qsystemtrayicon.h" -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+QT_BEGIN_HEADER -+ -+QT_BEGIN_NAMESPACE -+ -+QT_MODULE(Gui) -+ -+ -+class QSystemTrayIconLooper :public QObject, public BLooper -+{ -+ Q_OBJECT -+public: -+ QSystemTrayIconLooper(); -+ virtual void MessageReceived(BMessage* theMessage); -+ thread_id Run(void); -+Q_SIGNALS: -+ void sendHaikuMessage(BMessage *); -+}; -+ -+class QSystemTrayIconSys : public QWidget -+{ -+ Q_OBJECT -+public: -+ QSystemTrayIconSys(QSystemTrayIcon *object); -+ ~QSystemTrayIconSys(); -+ -+ void UpdateIcon(); -+ void UpdateTooltip(); -+ status_t SendMessageToReplicant(BMessage *msg); -+ -+ QSystemTrayIcon *q; -+ QSystemTrayIconLooper* Looper; -+ -+ QRect shelfRect; -+ -+public slots: -+ void HaikuEvent(BMessage *m); -+ -+private: -+ BMessenger GetShelfMessenger(void); -+ int32 ExecuteCommand(char *command); -+ int32 DeskBarLoadIcon(team_id tid); -+ int32 DeskBarLoadIcon(void); -+ void InstallIcon(void); -+ -+ int32 ReplicantId; -+ int32 LiveFactor; -+ -+ bool ignoreNextMouseRelease; -+ -+ BMessageRunner *pulse; -+ -+ friend class QSystemTrayIconPrivate; -+}; -+ -+ -+QT_END_NAMESPACE -+ -+QT_END_HEADER -+ -+#endif //QSYSTRAYICONHAIKU_H -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_p.h qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_p.h ---- qt-everywhere-opensource-src-4.7.3/src/gui/util/qsystemtrayicon_p.h 2011-03-30 05:19:06.000262144 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/qsystemtrayicon_p.h 2011-06-13 22:06:43.409993216 +0000 -@@ -178,6 +178,12 @@ private: - }; - #endif // Q_WS_X11 - -+#if defined(Q_WS_HAIKU) -+QT_BEGIN_INCLUDE_NAMESPACE -+#include "qsystemtrayicon_haiku.h" -+QT_END_INCLUDE_NAMESPACE -+#endif // Q_WS_HAIKU -+ - QT_END_NAMESPACE - - #endif // QT_NO_SYSTEMTRAYICON -diff -rupN qt-everywhere-opensource-src-4.7.3/src/gui/util/util.pri qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/util.pri ---- qt-everywhere-opensource-src-4.7.3/src/gui/util/util.pri 2011-03-30 05:19:06.002097152 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/gui/util/util.pri 2011-06-13 22:06:43.411303936 +0000 -@@ -56,4 +56,11 @@ symbian { - } else { - DEFINES += USE_SCHEMEHANDLER - } --} -\ No newline at end of file -+} -+ -+haiku { -+ HEADERS += \ -+ util/qsystemtrayicon_haiku.h -+ SOURCES += \ -+ util/qsystemtrayicon_haiku.cpp -+} -diff -rupN qt-everywhere-opensource-src-4.7.3/src/network/kernel/qnetworkinterface_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/network/kernel/qnetworkinterface_unix.cpp ---- qt-everywhere-opensource-src-4.7.3/src/network/kernel/qnetworkinterface_unix.cpp 2011-03-30 05:19:09.012582912 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/network/kernel/qnetworkinterface_unix.cpp 2011-06-13 22:06:43.413138944 +0000 -@@ -52,6 +52,10 @@ - #include - #include - -+#ifdef Q_OS_HAIKU -+# include -+#endif -+ - #ifdef Q_OS_SOLARIS - # include - #endif -@@ -92,7 +96,9 @@ static QNetworkInterface::InterfaceFlags - { - QNetworkInterface::InterfaceFlags flags = 0; - flags |= (rawFlags & IFF_UP) ? QNetworkInterface::IsUp : QNetworkInterface::InterfaceFlag(0); -+#ifndef Q_OS_HAIKU - flags |= (rawFlags & IFF_RUNNING) ? QNetworkInterface::IsRunning : QNetworkInterface::InterfaceFlag(0); -+#endif - flags |= (rawFlags & IFF_BROADCAST) ? QNetworkInterface::CanBroadcast : QNetworkInterface::InterfaceFlag(0); - flags |= (rawFlags & IFF_LOOPBACK) ? QNetworkInterface::IsLoopBack : QNetworkInterface::InterfaceFlag(0); - #ifdef IFF_POINTOPOINT //cygwin doesn't define IFF_POINTOPOINT -diff -rupN qt-everywhere-opensource-src-4.7.3/src/network/socket/qnativesocketengine_unix.cpp qt-everywhere-opensource-src-4.7.3_haiku/src/network/socket/qnativesocketengine_unix.cpp ---- qt-everywhere-opensource-src-4.7.3/src/network/socket/qnativesocketengine_unix.cpp 2011-03-30 05:19:09.024379392 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/network/socket/qnativesocketengine_unix.cpp 2011-06-13 22:06:43.414973952 +0000 -@@ -705,6 +705,9 @@ qint64 QNativeSocketEnginePrivate::nativ - memcpy(&sockAddrIPv6.sin6_addr.s6_addr, &tmp, sizeof(tmp)); - sockAddrSize = sizeof(sockAddrIPv6); - sockAddrPtr = (struct sockaddr *)&sockAddrIPv6; -+#ifdef Q_OS_HAIKU -+ sockAddrIPv6.sin6_len = sockAddrSize; -+#endif - } else - #endif - if (host.protocol() == QAbstractSocket::IPv4Protocol) { -@@ -714,6 +717,9 @@ qint64 QNativeSocketEnginePrivate::nativ - sockAddrIPv4.sin_addr.s_addr = htonl(host.toIPv4Address()); - sockAddrSize = sizeof(sockAddrIPv4); - sockAddrPtr = (struct sockaddr *)&sockAddrIPv4; -+#ifdef Q_OS_HAIKU -+ sockAddrIPv4.sin_len = sockAddrSize; -+#endif - } - - // ignore the SIGPIPE signal -diff -rupN qt-everywhere-opensource-src-4.7.3/src/tools/uic/qclass_lib_map.h qt-everywhere-opensource-src-4.7.3_haiku/src/tools/uic/qclass_lib_map.h ---- qt-everywhere-opensource-src-4.7.3/src/tools/uic/qclass_lib_map.h 2011-03-30 05:19:08.002883584 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/src/tools/uic/qclass_lib_map.h 2011-06-13 22:06:43.417333248 +0000 -@@ -1410,3 +1410,8 @@ QT_CLASS_LIB(Q3PaintDeviceMetrics, Qt3Su - QT_CLASS_LIB(Q3Painter, Qt3Support, q3painter.h) - QT_CLASS_LIB(Q3Picture, Qt3Support, q3picture.h) - QT_CLASS_LIB(Q3PointArray, Qt3Support, q3pointarray.h) -+QT_CLASS_LIB(QtHaikuView, QtGui, qwidget_haiku.h) -+QT_CLASS_LIB(QtHaikuWindow, QtGui, qwidget_haiku.h) -+QT_CLASS_LIB(QHaikuStyle, QtGui, qhaikustyle.h) -+QT_CLASS_LIB(QSystemTrayIconLooper, QtGui, qsystemtrayicon_haiku.h) -+QT_CLASS_LIB(QSystemTrayIconSys, QtGui, qsystemtrayicon_haiku.h) -diff -rupN qt-everywhere-opensource-src-4.7.3/tools/designer/src/designer/designer.pro qt-everywhere-opensource-src-4.7.3_haiku/tools/designer/src/designer/designer.pro ---- qt-everywhere-opensource-src-4.7.3/tools/designer/src/designer/designer.pro 2011-03-30 05:16:34.058720256 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/tools/designer/src/designer/designer.pro 2011-06-13 22:06:43.419168256 +0000 -@@ -87,4 +87,4 @@ INSTALLS += target - - include(../sharedcomponents.pri) - --unix:!mac:LIBS += -lm -+unix:!mac:!haiku:LIBS += -lm -diff -rupN qt-everywhere-opensource-src-4.7.3/tools/qtconfig/mainwindow.cpp qt-everywhere-opensource-src-4.7.3_haiku/tools/qtconfig/mainwindow.cpp ---- qt-everywhere-opensource-src-4.7.3/tools/qtconfig/mainwindow.cpp 2011-03-30 05:16:29.027787264 +0000 -+++ qt-everywhere-opensource-src-4.7.3_haiku/tools/qtconfig/mainwindow.cpp 2011-06-13 22:06:43.421265408 +0000 -@@ -73,7 +73,9 @@ - #include - #endif - -+#ifndef Q_OS_HAIKU - #include -+#endif - - QT_BEGIN_NAMESPACE - -@@ -234,9 +236,11 @@ MainWindow::MainWindow() - connect(buttonMainColor2, SIGNAL(colorChanged(QColor)), - this, SLOT(buildPalette())); - -+#ifndef Q_OS_HAIKU - if (X11->desktopEnvironment == DE_KDE) - colorConfig->hide(); - else -+#endif - labelKDENote->hide(); - - QFontDatabase db; \ No newline at end of file diff --git a/dev-qt/qtcore/patches/qtcore-4.8.5.git.patchset b/dev-qt/qtcore/patches/qtcore-4.8.5.git.patchset new file mode 100644 index 000000000..2b92dd433 --- /dev/null +++ b/dev-qt/qtcore/patches/qtcore-4.8.5.git.patchset @@ -0,0 +1,30 @@ +From 3c8c94f39ddd083200f92005b67b9a88844b3772 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Thu, 14 Nov 2013 15:34:00 -0700 +Subject: [PATCH] Adjust font paths for updated Haiku fs layout + +--- + src/gui/text/qfontdatabase_haiku.cpp | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/gui/text/qfontdatabase_haiku.cpp b/src/gui/text/qfontdatabase_haiku.cpp +index c1b9526..f7b6dd7 100644 +--- a/src/gui/text/qfontdatabase_haiku.cpp ++++ b/src/gui/text/qfontdatabase_haiku.cpp +@@ -50,9 +50,10 @@ static void initializeDb() + FT_Library lib = qt_getFreetype(); + + directory_which FontDirs[] = { +- B_BEOS_FONTS_DIRECTORY, +- B_COMMON_FONTS_DIRECTORY, +- B_USER_FONTS_DIRECTORY ++ B_SYSTEM_FONTS_DIRECTORY, ++ B_SYSTEM_NONPACKAGED_FONTS_DIRECTORY, ++ B_USER_FONTS_DIRECTORY, ++ B_USER_NONPACKAGED_FONTS_DIRECTORY + }; + + +-- +1.8.3.4 + diff --git a/dev-qt/qtcore/qtcore-4.7.3.recipe b/dev-qt/qtcore/qtcore-4.7.3.recipe deleted file mode 100644 index 5124291b7..000000000 --- a/dev-qt/qtcore/qtcore-4.7.3.recipe +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION="The Qt toolkit is a comprehensive C++ application development framework" -HOMEPAGE="http://qt-haiku.ru" -SRC_URI="http://pkgs.fedoraproject.org/repo/pkgs/qt/qt-everywhere-opensource-src-4.7.3.tar.gz/49b96eefb1224cc529af6fe5608654fe/qt-everywhere-opensource-src-4.7.3.tar.gz" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -CHECKSUM_MD5="49b96eefb1224cc529af6fe5608654fe" -MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." -BUILD() -{ - cd qt-everywhere-opensource-src-4.7.3 - configure --prefix-install=no -no-pch -no-opengl -no-largefile \ - -fast -nomake examples -nomake demos -release -opensource \ - -confirm-license -no-iconv -phonon -no-phonon-backend \ - -multimedia -no-audio-backend - make -} - -INSTALL() -{ - cd qt-everywhere-opensource-src-4.7.3 - make install INSTALL_ROOT=${DESTDIR} -} - -LICENSE="GNU LGPL v2.1" -COPYRIGHT="2011 Nokia Corporation and/or its subsidiary(-ies)." diff --git a/dev-qt/qtcore/qtcore-4.8.5.git.recipe b/dev-qt/qtcore/qtcore-4.8.5.git.recipe new file mode 100644 index 000000000..c0a964d9b --- /dev/null +++ b/dev-qt/qtcore/qtcore-4.8.5.git.recipe @@ -0,0 +1,205 @@ +SUMMARY="A comprehensive C++ application development framework" +DESCRIPTION=" +Qt is a cross-platform application and UI framework for developers +using C++ or QML, a CSS & JavaScript like language. Qt Creator is the +supporting Qt IDE. + +Qt, Qt Quick and the supporting tools are developed as an open source +project governed by an inclusive meritocratic model. Qt can be used +under open source (LGPL v2.1) or commercial terms. +" +HOMEPAGE="http://qt-haiku.ru" +SRC_URI="git://gitorious.org/+qt-haiku/qt/qt-haiku-port.git" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2011 Nokia Corporation and/or its subsidiary(-ies)." +REVISION="1" +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES ?x86_gcc2" +else + ARCHITECTURES="$ARCHITECTURES !x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + qtcore$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qtconfig$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qsystray$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libphonon$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQt3Support$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtCLucene$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtCore$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtDeclarative$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtDesigner$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtDesignerComponents$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtGui$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtHelp$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtMultimedia$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtNetwork$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtScript$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtScriptTools$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtSql$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtSvg$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtTest$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtWebKit$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtXml$secondaryArchSuffix = $portVersion compat >= 4.8 + lib:libQtXmlPatterns$secondaryArchSuffix = $portVersion compat >= 4.8 + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + lib:libcrypto$secondaryArchSuffix + lib:libssl$secondaryArchSuffix + lib:libz$secondaryArchSuffix + lib:libicuuc$secondaryArchSuffix + lib:libtiff$secondaryArchSuffix + lib:libjpeg$secondaryArchSuffix + lib:libpng$secondaryArchSuffix + " + +BUILD_REQUIRES=" + icu_devel$secondaryArchSuffix + devel:libz$secondaryArchSuffix + devel:libcrypto$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libjpeg$secondaryArchSuffix + devel:libpng$secondaryArchSuffix + " +# should have devel:libtiff too but that doesn't seem to be provided + +BUILD_PREREQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + cmd:make + cmd:g++$secondaryArchSuffix + cmd:ld$secondaryArchSuffix + cmd:perl + " + +PROVIDES_devel=" + qtcore${secondaryArchSuffix}_devel = $portVersion compat >= 4.8 + cmd:assistant$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:designer$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:lconvert$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:linguist$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:lrelease$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:lupdate$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:moc$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:pixeltool$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qcollectiongenerator$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qdoc3$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qhelpconverter$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qhelpgenerator$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qmake$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qmlplugindump$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qmlviewer$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qt3to4$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:qttracereplay$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:rcc$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:uic$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:uic3$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:xmlpatterns$secondaryArchSuffix = $portVersion compat >= 4.8 + cmd:xmlpatternsvalidator$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libphonon$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQt3Support$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtCLucene$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtCore$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtDeclarative$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtDesigner$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtDesignerComponents$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtGui$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtHelp$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtMultimedia$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtNetwork$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtScript$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtScriptTools$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtSql$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtSvg$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtTest$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtWebKit$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtXml$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtXmlPatterns$secondaryArchSuffix = $portVersion compat >= 4.8 + devel:libQtUiTools$secondaryArchSuffix = $portVersion compat >= 4.8 + " + +REQUIRES_devel=" + qtcore$secondaryArchSuffix == $portVersion + " + +PATCHES="qtcore-4.8.5.git.patchset" + +SOURCE_DIR="qt-haiku-port" + +BUILD() +{ + ./configure \ + -prefix $prefix \ + -headerdir $includeDir \ + -docdir $docDir/Qt \ + -datadir $dataDir/Qt \ + -translationdir $dataDir/Qt \ + -sysconfdir $settingsDir \ + -demosdir $dataDir/Qt \ + -examplesdir $dataDir/Qt \ + -importdir $dataDir/Qt \ + -plugindir $addOnsDir/Qt \ + -no-pch -no-opengl -no-largefile \ + -fast -nomake examples -nomake demos -release -opensource \ + -confirm-license -no-iconv -phonon -no-phonon-backend \ + -multimedia -no-audio-backend + + make $jobArgs + + cd src/3rdparty/haiku-tools/qsystray + if [ "$effectiveTargetArchitecture" = x86 ];then + make -f Makefile.gcc4 + else + make -f Makefile.gcc2 + fi +} + +INSTALL() +{ + make install + + cd src/3rdparty/haiku-tools/qsystray + if [ "$effectiveTargetArchitecture" = x86 ];then + cp -af qsystray $binDir + else + cp -af qsystray_gcc2 $binDir + fi + + prepareInstalledDevelLibs libphonon \ + libQt3Support libQtCLucene \ + libQtCore libQtDeclarative \ + libQtDesigner libQtDesignerComponents \ + libQtGui libQtHelp \ + libQtMultimedia libQtNetwork \ + libQtScript libQtScriptTools \ + libQtSql libQtSvg \ + libQtTest libQtWebKit \ + libQtXml libQtXmlPatterns \ + libQtUiTools + + fixPkgconfig + + devCommands="assistant designer lconvert + linguist lrelease lupdate + moc pixeltool qcollectiongenerator + qdoc3 qhelpconverter qhelpgenerator + qmake qmlplugindump qmlviewer + qt3to4 qttracereplay rcc + uic uic3 xmlpatterns + xmlpatternsvalidator" + + for i in $devCommands;do + devPackageCommands="$devPackageCommands $binDir/$i$secondaryArchSuffix" + done + + packageEntries devel $developDir \ + $devPackageCommands + + # move tests to demo/example package when it exists + rm -rf $prefix/tests +} diff --git a/dev-qt/qtcore/qtcore-4.8.x.recipe b/dev-qt/qtcore/qtcore-4.8.x.recipe deleted file mode 100644 index e427e3c4f..000000000 --- a/dev-qt/qtcore/qtcore-4.8.x.recipe +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION="The Qt toolkit is a comprehensive C++ application development framework" -HOMEPAGE="http://qt-haiku.ru" -SRC_URI="git://gitorious.org/+qt-haiku/qt/qt-haiku-port.git" -REVISION="1" -STATUS_HAIKU="stable" -DEPEND="" -#CHECKSUM_MD5="" -MESSAGE="This port only builds with gcc4. Use 'setgcc gcc4' before building." -BUILD() -{ - cd qtcore-4.8.x - configure --prefix-install=no -no-pch -no-opengl -no-largefile \ - -fast -nomake examples -nomake demos -release -opensource \ - -confirm-license -no-iconv -phonon -no-phonon-backend \ - -multimedia -no-audio-backend - make -} - -INSTALL() -{ - cd qtcore-4.8.x - make install INSTALL_ROOT=${DESTDIR} -} - -LICENSE="GNU LGPL v2.1" -COPYRIGHT="2011 Nokia Corporation and/or its subsidiary(-ies)."