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)."