view generator/typesystem_gui.xml @ 282:256ab6cb8e85

Signals look-up andNew syntax for connect. The old one will not work from now on. This will allow for the signals overload. Although changes are done for both D1 and D2 versions, D1 won't work because of compiler bugs. I am tired of waiting for fixes.
author eldar
date Fri, 16 Oct 2009 02:43:59 +0000
parents 34a37904ff77
children f9559a957be9 80b52f5e97b6
line wrap: on
line source

<?xml version="1.0" encoding="UTF-8"?>
<typesystem package="qt.gui" default-superclass="QtdObject">
<depend package="qt.core" />
<inject-code>
        qt.Utilities.loadQtLibrary("QtGui");
</inject-code>

<template name="gui.class_from_variant_java">
    public this(QVariant arg__1) {
        void* __qt_return_value = qtd_%CLASS_NAME_%CLASS_NAME_QVariant(cast(void*) this, arg__1 is null ? null : arg__1.__nativeId);
        super(__qt_return_value);
    }
</template>

<template name="gui.class_from_variant_java_free">
private extern (C) void* qtd_%CLASS_NAME_%CLASS_NAME_QVariant(void *d_ptr,
 void* arg__1);
</template>

<template name="gui.class_from_variant_native">
// %CLASS_NAME from QVariant
extern "C" DLL_PUBLIC void* qtd_%CLASS_NAME_%CLASS_NAME_QVariant
(void *d_ptr,
 void* arg__1)
{
    const QVariant&amp;  __qt_arg__1 = (const QVariant&amp; ) *(QVariant *)arg__1;
    %CLASS_NAME __qt_casted = qvariant_cast&lt;%CLASS_NAME&gt;(__qt_arg__1);
    %CLASS_NAME *__qt_this = new %CLASS_NAME((const %CLASS_NAME&amp; )__qt_casted);
    return (void *) __qt_this;
}
</template>

<template name="gui.class_from_variant_native_shell">
// %CLASS_NAME from QVariant
extern "C" DLL_PUBLIC void* qtd_%CLASS_NAME_%CLASS_NAME_QVariant
(void *d_ptr,
 void* arg__1)
{
    const QVariant&amp;  __qt_arg__1 = (const QVariant&amp; ) *(QVariant *)arg__1;
    %CLASS_NAME __qt_casted = qvariant_cast&lt;%CLASS_NAME&gt;(__qt_arg__1);
    %CLASS_NAME_QtDShell *__qt_this = new %CLASS_NAME_QtDShell(d_ptr, (const %CLASS_NAME&amp; )__qt_casted);
    return (void *) __qt_this;
}
</template>
<!-- without shell
    <inject-code class="java">
        <insert-template name="gui.class_from_variant_java">
            <replace from="%CLASS_NAME" to=""/>
        </insert-template>
    </inject-code>   
    <inject-code class="java-free">
        <insert-template name="gui.class_from_variant_java_free">
            <replace from="%CLASS_NAME" to=""/>
        </insert-template>
    </inject-code>
    <inject-code class="native">
        <insert-template name="gui.class_from_variant_native">
            <replace from="%CLASS_NAME" to=""/>
        </insert-template>
    </inject-code>
    
  with shell
    <inject-code class="java">
        <insert-template name="gui.class_from_variant_java">
            <replace from="%CLASS_NAME" to=""/>
        </insert-template>
    </inject-code>   
    <inject-code class="java-free">
        <insert-template name="gui.class_from_variant_java_free">
            <replace from="%CLASS_NAME" to=""/>
        </insert-template>
    </inject-code>
    <inject-code class="native">
        <insert-template name="gui.class_from_variant_native_shell">
            <replace from="%CLASS_NAME" to=""/>
        </insert-template>
    </inject-code>
-->

        
<template name="gui.getter_returning_nativepointer">
        public final %RETURN_TYPE %FUNCTION_NAME() {
            QNativePointer np = %FUNCTION_NAME_private();
            %RETURN_TYPE tmp = np == null ? null : %RETURN_TYPE.fromNativePointer(np);
            return tmp == null ? null : new %RETURN_TYPE(tmp);
        }

    </template>
<template name="gui.init_style_option">
        protected final void initStyleOption(%TYPE option) {
            initStyleOption(option.nativePointer());
        }
    </template>
<template name="gui.convert_validationdata_to_java">
        StaticCache *sc = StaticCache::instance();
        sc-&gt;resolveValidationData();
        jstring __qt_converted_input = qtjambi_from_qstring(__jni_env, %STRING);
        jobject %out = __jni_env-&gt;NewObject(sc-&gt;ValidationData.class_ref, sc-&gt;ValidationData.constructor, __qt_converted_input, %POS);
        jobject __java_validation_data = %out;
    </template>
<template name="gui.cleanup_validationdata_from_java">
        __jni_env-&gt;SetIntField(%1, sc-&gt;ValidationData.position, *__position_ptr);
        __jni_env-&gt;SetObjectField(%1, sc-&gt;ValidationData.string, qtjambi_from_qstring(__jni_env, *__string_ptr));
    </template>
<template name="gui.convert_validationdata_to_string">
        StaticCache *sc = StaticCache::instance();
        sc-&gt;resolveValidationData();
        jstring __java_string = (jstring) __jni_env-&gt;GetObjectField(%in, sc-&gt;ValidationData.string);
        QString %out = __java_string == 0 ? QString() : qtjambi_to_qstring(__jni_env, __java_string);
        QString *__string_ptr = &amp;%out;
    </template>
<template name="gui.convert_validationdata_to_pos">
        int %out = __jni_env-&gt;GetIntField(%1, sc-&gt;ValidationData.position);
        int *__position_ptr = &amp;%out;
    </template>
<template name="gui.cleanup_validationdata_to_java">
        jstring __java_string = (jstring) __jni_env-&gt;GetObjectField(__java_validation_data, sc-&gt;ValidationData.string);
        %STRING = __java_string == 0 ? QString() : qtjambi_to_qstring(__jni_env, __java_string);
        %POS = __jni_env-&gt;GetIntField(__java_validation_data, sc-&gt;ValidationData.position);
    </template>
<template name="gui.convert_object_array_to_java">
        jobjectArray %out = 0;

        {
            jclass __resolved_class = resolveClass(__jni_env, "%CLASSNAME_ARRAY", "%PACKAGE_ARRAY");
            QTJAMBI_EXCEPTION_CHECK(__jni_env);
            Q_ASSERT(__resolved_class != 0);

            %out = %in == 0 ? 0 : __jni_env-&gt;NewObjectArray(%LENGTH, __resolved_class, 0);
            QTJAMBI_EXCEPTION_CHECK(__jni_env);
            if (%out != 0) {
                for (int i=0; i&lt;%LENGTH; ++i) {
                    __jni_env-&gt;SetObjectArrayElement(%out, i, qtjambi_from_object(__jni_env, %REFERENCE %in[i], "%CLASSNAME", "%PACKAGE", %LOOKUP true));
                }
            }
       }
    </template>
<template name="gui.convert_graphicsitem_array_to_java">
        <insert-template name="gui.convert_object_array_to_java">
            <replace from="%CLASSNAME_ARRAY" to="QGraphicsItemInterface"/>
            <replace from="%PACKAGE_ARRAY" to="com/trolltech/qt/gui/"/>
            <replace from="%CLASSNAME" to="QGraphicsItem$ConcreteWrapper"/>
            <replace from="%PACKAGE" to="com/trolltech/qt/gui/"/>
            <replace from="%LOOKUP" to=""/>
            <replace from="%REFERENCE" to=""/>
        </insert-template>
    </template>
<template name="gui.convert_styleoptiongraphicsitem_array_to_java">
        <insert-template name="gui.convert_object_array_to_java">
            <replace from="%CLASSNAME_ARRAY" to="QStyleOptionGraphicsItem"/>
            <replace from="%PACKAGE_ARRAY" to="com/trolltech/qt/gui/"/>
            <replace from="%CLASSNAME" to="QStyleOptionGraphicsItem"/>
            <replace from="%PACKAGE" to="com/trolltech/qt/gui/"/>
            <replace from="%LOOKUP" to="&quot;Lcom_trolltech_qt_gui_QStyleOption_2&quot;,"/>
            <replace from="%REFERENCE" to="&amp;"/>
        </insert-template>
    </template>
<template name="gui.convert_interface_array_from_java">
        %CLASSNAME *%out = 0;
        QVarLengthArray&lt;%CLASSNAME, 256&gt; __interfaceArray(__length);
        if (%in != 0) {
            for (int i=0; i&lt;__length; ++i) {
                __interfaceArray[i] = (%CLASSNAME) %CONVERSION_FUNCTION(__jni_env, __jni_env-&gt;GetObjectArrayElement((jobjectArray) %in, i) %EXTRA);
            }
        }
        %out = %in == 0 ? 0 : __interfaceArray.data();
    </template>
<template name="gui.convert_object_array_from_java">
        %CLASSNAME *%out = 0;
        QVarLengthArray&lt;%CLASSNAME, 256&gt; __array(__length);
        if (%in != 0) {
            for (int i=0; i&lt;__length; ++i) {
                __array[i] = *(%CLASSNAME *) %CONVERSION_FUNCTION(__jni_env, __jni_env-&gt;GetObjectArrayElement((jobjectArray) %in, i) %EXTRA);
            }
        }
        %out = %in == 0 ? 0 : __array.data();
    </template>
<template name="gui.convert_graphicsitem_array_from_java">
        <insert-template name="gui.convert_interface_array_from_java">
            <replace from="%CLASSNAME" to="QGraphicsItem *"/>
            <replace from="%EXTRA" to=", &quot;QGraphicsItemInterface&quot;, &quot;com/trolltech/qt/gui/&quot;, &quot;__qt_cast_to_QGraphicsItem&quot;"/>
            <replace from="%CONVERSION_FUNCTION" to="qtjambi_to_interface"/>
        </insert-template>
    </template>
<template name="gui.convert_styleoptiongraphicsitem_array_from_java">
        <insert-template name="gui.convert_object_array_from_java">
            <replace from="%CLASSNAME" to="QStyleOptionGraphicsItem"/>
            <replace from="%EXTRA" to=""/>
            <replace from="%CONVERSION_FUNCTION" to="qtjambi_to_object"/>
        </insert-template>
    </template>
<template name="gui::qstyleoption_from_object">
        jobject %out = qtjambi_from_object(__jni_env, %in, "QStyleOption", "com/trolltech/qt/gui/", "Lcom_trolltech_qt_gui_QStyleOption_2", true);
    </template>
<template name="gui::qstyleoptioncomplex_from_object">
        jobject %out = qtjambi_from_object(__jni_env, %in, "QStyleOptionComplex", "com/trolltech/qt/gui/", "Lcom_trolltech_qt_gui_QStyleOption_2", true);
    </template>
<template name="gui::qstyleoption_to_object">
        QStyleOption *%out = (QStyleOption *) qtjambi_to_object(__jni_env, %in);
    </template>
<template name="gui.inputDialog_get_input">
    public static %RETURN_TYPE %FUNCTION_NAME(qt.gui.QWidget parent, java.lang.String title, java.lang.String label, %EXTRA, qt.core.Qt.WindowFlags f) {
        qt.QNativePointer ok = new qt.QNativePointer(qt.QNativePointer.Type.Boolean);
        %RETURN_TYPE result = %FUNCTION_NAME_internal(parent, title, label, %CALL, ok, f);
        return ok.booleanValue() ? result : null;
    }

    public static %RETURN_TYPE %FUNCTION_NAME(qt.gui.QWidget parent, java.lang.String title, java.lang.String label, %EXTRA, qt.core.Qt.WindowType ... f) {
        qt.QNativePointer ok = new qt.QNativePointer(qt.QNativePointer.Type.Boolean);
        %RETURN_TYPE result = %FUNCTION_NAME_internal(parent, title, label, %CALL, ok, f);
        return ok.booleanValue() ? result : null;
    }

    public static %RETURN_TYPE %FUNCTION_NAME(qt.gui.QWidget parent, java.lang.String title, java.lang.String label, %EXTRA) {
        return %FUNCTION_NAME(parent, title, label, %CALL, qt.core.Qt.WindowType.Widget);
    }

    </template>
<suppress-warning text="WARNING(JavaGenerator) :: either add or remove specified for reference count variable '__rcItems' in 'qt.gui.QGraphicsGridLayout' but not both"/>

  <rejection class="*" function-name="d_func"/>

  <rejection class="*" field-name="d_ptr"/>
  <rejection class="*" field-name="d"/>
  
  <rejection class="QAccessibleTableInterface"/>
  
  <rejection class="QWindowsCEStyle"/>
  <rejection class="QWindowsMobileStyle"/>
  <rejection class="QAbstractUndoItem"/>
  <rejection class="QAccessibleApplication"/>
  <rejection class="QBrushData"/>
  <rejection class="QImageTextKeyLang"/>
  <rejection class="QItemEditorCreator"/>
  <rejection class="QLibrary"/>
  <rejection class="QLinkedList"/>
  <rejection class="QLinkedListData"/>
  <rejection class="QLinkedListIterator"/>
  <rejection class="QLinkedListNode"/>
  <rejection class="QMimeSource"/>
  <rejection class="QPainterPathPrivate"/>
  <rejection class="QRegionData"/>
  <rejection class="QStandardItemEditorCreator"/>
  <rejection class="QStyleOptionQ3DockWindow"/>
  <rejection class="QStyleOptionQ3ListView"/>
  <rejection class="QStyleOptionQ3ListViewItem"/>
  <rejection class="QTextFrameLayoutData"/>
  <rejection class="QUpdateLaterEvent"/>
  <rejection class="QVFbHeader"/>
  <rejection class="QWidgetData"/>
  <rejection class="QWindowSurface"/>
  <rejection class="QWindowsXPStyle"/>
  <rejection class="QWindowsVistaStyle"/>
  <rejection class="QWSEmbedWidget"/>
  <rejection class="QRegion::QRegionData"/>
  <rejection class="JObject_key"/>
  <rejection class="QAccessibleEditableTextInterface"/>
  <rejection class="QAccessibleSimpleEditableTextInterface"/>
  <rejection class="QAccessibleTextInterface"/>
  <rejection class="QAccessibleValueInterface"/>
  <rejection class="QIconEngineFactoryInterface"/>
  <rejection class="QIconEnginePlugin"/>
  <rejection class="QWidgetItemV2"/>
  <rejection class="QAbstractItemDelegate" function-name="operator="/>
  <rejection class="QAccessible" function-name="installFactory"/>
  <rejection class="QAccessible" function-name="installRootObjectHandler"/>
  <rejection class="QAccessible" function-name="installUpdateHandler"/>
  <rejection class="QAccessible" function-name="removeFactory"/>
  <rejection class="QApplication" function-name="compressEvent"/>
  <rejection class="QBrush" function-name="cleanUp"/>
  <rejection class="QPictureIO" function-name="defineIOHandler"/>
  <rejection class="QPolygon" function-name="putPoints"/>
  <rejection class="QPolygon" function-name="setPoints"/>
  <rejection class="QPolygon" function-name="setPoint"/>
  <rejection class="QPolygon" function-name="points"/>
  <rejection class="QPolygon" function-name="point"/>
  <rejection class="QPrinter" function-name="printerSelectionOption"/>
  <rejection class="QPrinter" function-name="setPrinterSelectionOption"/>
  <rejection class="QWidget" function-name="create"/>
  <rejection class="QWidget" function-name="find"/>
  <rejection class="QWidget" function-name="handle"/>
  <rejection class="QWidget" function-name="styleChange"/>
  <rejection class="QWidget" function-name="internalWinId"/>
  <rejection class="QActionGroup" function-name="selected"/>
  <rejection class="QPaintEngine" function-name="fix_neg_rect"/>
  <rejection class="QTreeModel" function-name="node"/>
  <rejection class="QTreeModel" function-name="initializeNode"/>
  <rejection class="QTreeModel" function-name="queryChildren"/>
  <rejection class="QAccessible" function-name="cast_helper"/>
  <rejection class="QAccessible2"/>
  <rejection class="QAccessibleInterface" function-name="backgroundColor"/>
  <rejection class="QAccessibleInterface" function-name="foregroundColor"/>
  <rejection class="QAccessibleInterface" function-name="textInterface"/>
  <rejection class="QAccessibleInterface" function-name="valueInterface"/>
  <rejection class="QAccessibleInterface" function-name="tableInterface"/>
  <rejection class="QAccessibleInterface" function-name="editableTextInterface"/>
  <rejection class="QAccessibleInterface" function-name="cast_helper"/>
  <rejection class="QAccessibleInterfaceEx" function-name="interface_cast"/>
  <rejection class="QAccessibleBridgePlugin"/>
  <rejection class="QAccessibleBridgeFactoryInterface"/>
  <rejection class="QTabletEvent" field-name="mExtra"/>
  <rejection class="QWidgetItem" field-name="wid"/>
  <rejection class="QFont" enum-name="ResolveProperties"/>

  <enum-type name="QAbstractItemDelegate::EndEditHint"/>
  <enum-type name="QAbstractItemView::CursorAction"/>
  <enum-type name="QAbstractItemView::DragDropMode"/>
  <enum-type name="QAbstractItemView::DropIndicatorPosition"/>
  <enum-type name="QAbstractItemView::EditTrigger" flags="QAbstractItemView::EditTriggers"/>
  <enum-type name="QAbstractItemView::ScrollHint"/>
  <enum-type name="QAbstractItemView::ScrollMode"/>
  <enum-type name="QAbstractItemView::SelectionBehavior"/>
  <enum-type name="QAbstractItemView::SelectionMode"/>
  <enum-type name="QAbstractItemView::State"/>
  <enum-type name="QAbstractPrintDialog::PrintDialogOption" flags="QAbstractPrintDialog::PrintDialogOptions"/>
  <enum-type name="QAbstractPrintDialog::PrintRange"/>
  <enum-type name="QAbstractSlider::SliderAction"/>
  <enum-type name="QAbstractSlider::SliderChange"/>
  <enum-type name="QAbstractSpinBox::ButtonSymbols"/>
  <enum-type name="QAbstractSpinBox::CorrectionMode"/>
  <enum-type name="QAbstractSpinBox::StepEnabledFlag" flags="QAbstractSpinBox::StepEnabled"/>
  <enum-type name="QAccessible::Event"/>
  <enum-type name="QAccessible::Method"/>
  <enum-type name="QAccessible::RelationFlag" flags="QAccessible::Relation"/>
  <enum-type name="QAccessible::Role"/>
  <enum-type name="QAccessible::StateFlag" flags="QAccessible::State"/>
  <enum-type name="QAccessible::Text"/>
  <enum-type name="QDesktopServices::StandardLocation"/>
  <enum-type name="QDirModel::Roles"/>
  <enum-type name="QFont::Capitalization"/>
  <enum-type name="QFont::SpacingType"/>
  <enum-type name="QGraphicsItem::CacheMode"/>
  <enum-type name="QMdiArea::AreaOption" flags="QMdiArea::AreaOptions"/>
  <enum-type name="QMdiArea::WindowOrder"/>
  <enum-type name="QMdiArea::ViewMode"/>
  <enum-type name="QFileSystemModel::Roles"/>
  <enum-type name="QFormLayout::FieldGrowthPolicy"/>
  <enum-type name="QFormLayout::FormStyle"/>
  <enum-type name="QFormLayout::ItemRole"/>
  <enum-type name="QFormLayout::RowWrapPolicy"/>
  <enum-type name="QGraphicsProxyWidget::enum_1"/>
  <enum-type name="QGraphicsWidget::enum_1"/>
  <enum-type name="QPlainTextEdit::LineWrapMode"/>
  <enum-type name="QPrintPreviewWidget::ViewMode"/>
  <enum-type name="QPrintPreviewWidget::ZoomMode"/>
  <enum-type name="QStyleOptionViewItemV4::StyleOptionVersion"/>
  <enum-type name="QStyleOptionViewItemV4::ViewItemPosition"/>

  <enum-type name="QMdiSubWindow::SubWindowOption" flags="QMdiSubWindow::SubWindowOptions"/>

  <enum-type name="QAction::ActionEvent"/>
  <enum-type name="QAction::MenuRole"/>
  <enum-type name="QApplication::ColorSpec"/>
  <enum-type name="QApplication::Type"/>
  <enum-type name="QCalendarWidget::HorizontalHeaderFormat"/>
  <enum-type name="QCalendarWidget::SelectionMode"/>
  <enum-type name="QCalendarWidget::VerticalHeaderFormat"/>
  <enum-type name="QColor::Spec"/>
  <enum-type name="QColormap::Mode"/>
  <enum-type name="QComboBox::InsertPolicy"/>
  <enum-type name="QComboBox::SizeAdjustPolicy"/>
  <enum-type name="QCompleter::CompletionMode"/>
  <enum-type name="QCompleter::ModelSorting"/>
  <enum-type name="QContextMenuEvent::Reason"/>
  <enum-type name="QDataWidgetMapper::SubmitPolicy"/>
  <enum-type name="QDateTimeEdit::Section" flags="QDateTimeEdit::Sections"/>
  <enum-type name="QDialog::DialogCode"/>
  <enum-type name="QDialogButtonBox::ButtonLayout"/>
  <enum-type name="QDialogButtonBox::ButtonRole"/>
  <enum-type name="QFileDialog::AcceptMode"/>
  <enum-type name="QFileDialog::DialogLabel"/>
  <enum-type name="QFileDialog::FileMode"/>
  <enum-type name="QFileDialog::Option" flags="QFileDialog::Options"/>
  <enum-type name="QFileDialog::ViewMode"/>
  <enum-type name="QFileIconProvider::IconType"/>
  <enum-type name="QFont::Stretch"/>
  <enum-type name="QFont::Style"/>
  <enum-type name="QFont::StyleStrategy"/>
  <enum-type name="QFont::Weight"/>
  <enum-type name="QFontComboBox::FontFilter" flags="QFontComboBox::FontFilters"/>
  <enum-type name="QFrame::Shadow" extensible="yes"/>
  <enum-type name="QFrame::Shape"/>
  <enum-type name="QFrame::StyleMask"/>
  <enum-type name="QGradient::CoordinateMode"/>
  <enum-type name="QGradient::Spread" lower-bound="QGradient.PadSpread" upper-bound="QGradient.RepeatSpread"/>
  <enum-type name="QGradient::Type"/>
  <enum-type name="QGraphicsEllipseItem::enum_1"/>
  <enum-type name="QGraphicsItem::Extension"/>
  <enum-type name="QGraphicsItem::GraphicsItemChange"/>
  <enum-type name="QGraphicsItem::GraphicsItemFlag" flags="QGraphicsItem::GraphicsItemFlags"/>
  <enum-type name="QGraphicsItem::enum_1"/>
  <enum-type name="QGraphicsItemGroup::enum_1"/>
  <enum-type name="QGraphicsLineItem::enum_1"/>
  <enum-type name="QGraphicsPathItem::enum_1"/>
  <enum-type name="QGraphicsPixmapItem::ShapeMode"/>
  <enum-type name="QGraphicsPixmapItem::enum_1"/>
  <enum-type name="QGraphicsPolygonItem::enum_1"/>
  <enum-type name="QGraphicsRectItem::enum_1"/>
  <enum-type name="QGraphicsScene::ItemIndexMethod"/>
  <enum-type name="QGraphicsSceneContextMenuEvent::Reason"/>
  <enum-type name="QGraphicsSimpleTextItem::enum_1"/>
  <enum-type name="QGraphicsTextItem::enum_1"/>
  <enum-type name="QGraphicsView::CacheModeFlag" flags="QGraphicsView::CacheMode"/>
  <enum-type name="QGraphicsView::DragMode"/>
  <enum-type name="QGraphicsView::OptimizationFlag" flags="QGraphicsView::OptimizationFlags"/>
  <enum-type name="QGraphicsView::ViewportAnchor"/>
  <enum-type name="QGraphicsView::ViewportUpdateMode"/>
  <enum-type name="QIcon::Mode"/>
  <enum-type name="QIcon::State"/>
  <enum-type name="QImage::Format"/>
  <enum-type name="QImage::InvertMode"/>
  <enum-type name="QImageIOHandler::ImageOption"/>
  <enum-type name="QImageReader::ImageReaderError"/>
  <enum-type name="QImageWriter::ImageWriterError"/>
  <enum-type name="QInputContext::StandardFormat"/>
  <enum-type name="QInputMethodEvent::AttributeType"/>
  <enum-type name="QItemSelectionModel::SelectionFlag" flags="QItemSelectionModel::SelectionFlags"/>
  <enum-type name="QKeySequence::SequenceFormat"/>
  <enum-type name="QKeySequence::SequenceMatch"/>
  <enum-type name="QKeySequence::StandardKey"/>
  <enum-type name="QLCDNumber::Mode"/>
  <enum-type name="QLCDNumber::SegmentStyle"/>
  <enum-type name="QLayout::SizeConstraint"/>
  <enum-type name="QLineEdit::EchoMode"/>
  <enum-type name="QLineF::IntersectType"/>
  <enum-type name="QListView::Flow"/>
  <enum-type name="QListView::LayoutMode"/>
  <enum-type name="QListView::Movement"/>
  <enum-type name="QListView::ResizeMode"/>
  <enum-type name="QListView::ViewMode"/>
  <enum-type name="QListWidgetItem::ItemType"/>
  <enum-type name="QMainWindow::DockOption" flags="QMainWindow::DockOptions"/>
  <enum-type name="QMessageBox::ButtonRole"/>
  <enum-type name="QMessageBox::Icon"/>
  <enum-type name="QMovie::CacheMode"/>
  <enum-type name="QMovie::MovieState"/>
  <enum-type name="QPaintDevice::PaintDeviceMetric"/>
  <enum-type name="QPaintEngine::DirtyFlag" flags="QPaintEngine::DirtyFlags"/>
  <enum-type name="QPaintEngine::PaintEngineFeature" flags="QPaintEngine::PaintEngineFeatures"/>
  <enum-type name="QPaintEngine::PolygonDrawMode"/>
  <enum-type name="QPaintEngine::Type"/>
  <enum-type name="QPageSetupDialog::PageSetupDialogOption" flags="QPageSetupDialog::PageSetupDialogOptions"/>
  <enum-type name="QPainter::CompositionMode"/>
  <enum-type name="QPainter::RenderHint" flags="QPainter::RenderHints"/>
  <enum-type name="QPainterPath::ElementType"/>
  <enum-type name="QPrintEngine::PrintEnginePropertyKey">
    <reject-enum-value name="PPK_PaperSize"/>
  </enum-type>
  <enum-type name="QPrinter::ColorMode"/>
  <enum-type name="QPrinter::Orientation"/>
  <enum-type name="QPrinter::OutputFormat"/>
  <enum-type name="QPrinter::PageOrder"/>
  <enum-type name="QPrinter::PaperSource"/>
  <enum-type name="QPrinter::PrintRange"/>
  <enum-type name="QPrinter::PrinterMode"/>
  <enum-type name="QPrinter::PrinterState"/>
  <enum-type name="QPrinter::Unit"/>
  <enum-type name="QPrinter::DuplexMode"/>
  <enum-type name="QProgressBar::Direction"/>
  <enum-type name="QRegion::RegionType"/>
  <enum-type name="QRubberBand::Shape"/>
  <enum-type name="QSessionManager::RestartHint"/>
  <enum-type name="QSizePolicy::Policy"/>
  <enum-type name="QSizePolicy::PolicyFlag"/>
  <enum-type name="QSizePolicy::ControlType" flags="QSizePolicy::ControlTypes"/>
  <enum-type name="QStandardItem::ItemType"/>
  <enum-type name="QStyle::SubControl" flags="QStyle::SubControls" extensible="yes" force-integer="yes"/>
  <enum-type name="QStyle::ComplexControl" extensible="yes"/>
  <enum-type name="QStyle::ContentsType" extensible="yes"/>
  <enum-type name="QStyle::ControlElement" extensible="yes"/>
  <enum-type name="QStyle::PixelMetric" extensible="yes">
    <reject-enum-value name="PM_MDIFrameWidth"/>
    <reject-enum-value name="PM_MDIMinimizedWidth"/>
  </enum-type>
  <enum-type name="QStyle::PrimitiveElement" extensible="yes">
    <reject-enum-value name="PE_IndicatorItemViewItemCheck"/>
    <reject-enum-value name="PE_FrameStatusBarItem"/>
  </enum-type>
  <enum-type name="QStyle::StandardPixmap" extensible="yes"/>
  <enum-type name="QStyle::StateFlag" flags="QStyle::State"/>
  <enum-type name="QStyle::SubElement" extensible="yes">
    <reject-enum-value name="SE_ItemViewItemCheckIndicator"/>
  </enum-type>
  <enum-type name="QStyleHintReturn::HintReturnType"/>
  <enum-type name="QStyleHintReturn::StyleOptionType"/>
  <enum-type name="QStyleHintReturn::StyleOptionVersion"/>
  <enum-type name="QStyleHintReturnVariant::StyleOptionType"/>
  <enum-type name="QStyleHintReturnVariant::StyleOptionVersion"/>

  <enum-type name="QStyleHintReturnMask::StyleOptionType"/>
  <enum-type name="QStyleHintReturnMask::StyleOptionVersion"/>
  <enum-type name="QStyleOption::StyleOptionType"/>
  <enum-type name="QStyleOption::OptionType" extensible="yes"/>
  <enum-type name="QStyleOption::StyleOptionVersion"/>
  <enum-type name="QStyleOptionButton::ButtonFeature" flags="QStyleOptionButton::ButtonFeatures"/>
  <enum-type name="QStyleOptionButton::StyleOptionType"/>
  <enum-type name="QStyleOptionButton::StyleOptionVersion"/>
  <enum-type name="QStyleOptionComboBox::StyleOptionType"/>
  <enum-type name="QStyleOptionComboBox::StyleOptionVersion"/>
  <enum-type name="QStyleOptionComplex::StyleOptionType"/>
  <enum-type name="QStyleOptionComplex::StyleOptionVersion"/>
  <enum-type name="QStyleOptionDockWidget::StyleOptionType"/>
  <enum-type name="QStyleOptionDockWidget::StyleOptionVersion"/>
  <enum-type name="QStyleOptionDockWidgetV2::StyleOptionVersion"/>
  <enum-type name="QStyleOptionFocusRect::StyleOptionType"/>
  <enum-type name="QStyleOptionFocusRect::StyleOptionVersion"/>
  <enum-type name="QStyleOptionFrame::StyleOptionType"/>
  <enum-type name="QStyleOptionFrame::StyleOptionVersion"/>
  <enum-type name="QStyleOptionFrameV2::FrameFeature" flags="QStyleOptionFrameV2::FrameFeatures"/>
  <enum-type name="QStyleOptionFrameV2::StyleOptionVersion"/>
  <enum-type name="QStyleOptionGraphicsItem::StyleOptionType"/>
  <enum-type name="QStyleOptionGraphicsItem::StyleOptionVersion"/>
  <enum-type name="QStyleOptionGroupBox::StyleOptionType"/>
  <enum-type name="QStyleOptionGroupBox::StyleOptionVersion"/>
  <enum-type name="QStyleOptionHeader::SectionPosition"/>
  <enum-type name="QStyleOptionHeader::SelectedPosition"/>
  <enum-type name="QStyleOptionHeader::SortIndicator"/>
  <enum-type name="QStyleOptionHeader::StyleOptionType"/>
  <enum-type name="QStyleOptionHeader::StyleOptionVersion"/>
  <enum-type name="QStyleOptionMenuItem::CheckType"/>
  <enum-type name="QStyleOptionMenuItem::MenuItemType"/>
  <enum-type name="QStyleOptionMenuItem::StyleOptionType"/>
  <enum-type name="QStyleOptionMenuItem::StyleOptionVersion"/>
  <enum-type name="QStyleOptionProgressBar::StyleOptionType"/>
  <enum-type name="QStyleOptionProgressBar::StyleOptionVersion"/>
  <enum-type name="QStyleOptionProgressBarV2::StyleOptionType"/>
  <enum-type name="QStyleOptionProgressBarV2::StyleOptionVersion"/>
  <enum-type name="QStyleOptionRubberBand::StyleOptionType"/>
  <enum-type name="QStyleOptionRubberBand::StyleOptionVersion"/>
  <enum-type name="QStyleOptionSizeGrip::StyleOptionType"/>
  <enum-type name="QStyleOptionSizeGrip::StyleOptionVersion"/>
  <enum-type name="QStyleOptionSlider::StyleOptionType"/>
  <enum-type name="QStyleOptionSlider::StyleOptionVersion"/>
  <enum-type name="QStyleOptionSpinBox::StyleOptionType"/>
  <enum-type name="QStyleOptionSpinBox::StyleOptionVersion"/>
  <enum-type name="QStyleOptionTab::CornerWidget" flags="QStyleOptionTab::CornerWidgets"/>
  <enum-type name="QStyleOptionTab::SelectedPosition"/>
  <enum-type name="QStyleOptionTab::StyleOptionType"/>
  <enum-type name="QStyleOptionTab::StyleOptionVersion"/>
  <enum-type name="QStyleOptionTab::TabPosition"/>
  <enum-type name="QStyleOptionTabBarBase::StyleOptionType"/>
  <enum-type name="QStyleOptionTabBarBase::StyleOptionVersion"/>
  <enum-type name="QStyleOptionTabV2::StyleOptionVersion"/>
  <enum-type name="QStyleOptionTabWidgetFrame::StyleOptionType"/>
  <enum-type name="QStyleOptionTabWidgetFrame::StyleOptionVersion"/>
  <enum-type name="QStyleOptionTitleBar::StyleOptionType"/>
  <enum-type name="QStyleOptionTitleBar::StyleOptionVersion"/>
  <enum-type name="QStyleOptionToolBar::StyleOptionType"/>
  <enum-type name="QStyleOptionToolBar::StyleOptionVersion"/>
  <enum-type name="QStyleOptionToolBar::ToolBarFeature" flags="QStyleOptionToolBar::ToolBarFeatures"/>
  <enum-type name="QStyleOptionToolBar::ToolBarPosition"/>
  <enum-type name="QStyleOptionToolBox::StyleOptionType"/>
  <enum-type name="QStyleOptionToolBox::StyleOptionVersion"/>
  <enum-type name="QStyleOptionToolButton::StyleOptionType"/>
  <enum-type name="QStyleOptionToolButton::StyleOptionVersion"/>
  <enum-type name="QStyleOptionToolButton::ToolButtonFeature" flags="QStyleOptionToolButton::ToolButtonFeatures">
    <reject-enum-value name="MenuButtonPopup"/>
  </enum-type>
  <enum-type name="QStyleOptionViewItem::Position"/>
  <enum-type name="QStyleOptionViewItem::StyleOptionType"/>
  <enum-type name="QStyleOptionViewItem::StyleOptionVersion"/>
  <enum-type name="QStyleOptionViewItemV2::StyleOptionVersion"/>
  <enum-type name="QStyleOptionViewItemV2::ViewItemFeature" flags="QStyleOptionViewItemV2::ViewItemFeatures"/>
  <enum-type name="QSystemTrayIcon::ActivationReason"/>
  <enum-type name="QSystemTrayIcon::MessageIcon"/>
  <enum-type name="QTabBar::Shape"/>
  <enum-type name="QTabWidget::TabPosition"/>
  <enum-type name="QTabWidget::TabShape"/>
  <enum-type name="QTableWidgetItem::ItemType"/>
  <enum-type name="QTabletEvent::PointerType"/>
  <enum-type name="QTabletEvent::TabletDevice"/>
  <enum-type name="QTextCharFormat::UnderlineStyle"/>
  <enum-type name="QTextCharFormat::VerticalAlignment"/>
  <enum-type name="QTextCursor::MoveMode"/>
  <enum-type name="QTextCursor::MoveOperation"/>
  <enum-type name="QTextCursor::SelectionType"/>
  <enum-type name="QTextDocument::FindFlag" flags="QTextDocument::FindFlags"/>
  <enum-type name="QTextDocument::MetaInformation"/>
  <enum-type name="QTextDocument::ResourceType"/>
  <enum-type name="QTextEdit::AutoFormattingFlag" flags="QTextEdit::AutoFormatting"/>
  <enum-type name="QTextEdit::LineWrapMode"/>
  <enum-type name="QTextFormat::ObjectTypes"/>
  <enum-type name="QTextFormat::PageBreakFlag" flags="QTextFormat::PageBreakFlags"/>
  <enum-type name="QTextFrameFormat::Position"/>
  <enum-type name="QTextFrameFormat::BorderStyle"/>
  <enum-type name="QTextItem::RenderFlag" flags="QTextItem::RenderFlags"/>
  <enum-type name="QTextLayout::CursorMode"/>
  <enum-type name="QTextLength::Type"/>
  <enum-type name="QTextLine::CursorPosition"/>
  <enum-type name="QTextLine::Edge"/>
  <enum-type name="QTextListFormat::Style"/>
  <enum-type name="QTextOption::Flag" flags="QTextOption::Flags"/>
  <enum-type name="QTextOption::WrapMode"/>
  <enum-type name="QTextOption::TabType"/>
  <enum-type name="QToolButton::ToolButtonPopupMode"/>
  <enum-type name="QTreeWidgetItem::ItemType"/>
  <enum-type name="QTreeWidgetItemIterator::IteratorFlag" flags="QTreeWidgetItemIterator::IteratorFlags"/>
  <enum-type name="QValidator::State"/>
  <enum-type name="QWidget::RenderFlag" flags="QWidget::RenderFlags"/>
  <enum-type name="QWorkspace::WindowOrder"/>
  <enum-type name="QDoubleValidator::Notation"/>
  <enum-type name="QGraphicsScene::SceneLayer" flags="QGraphicsScene::SceneLayers"/>
  <enum-type name="QStyleOptionToolBoxV2::SelectedPosition"/>
  <enum-type name="QStyleOptionToolBoxV2::StyleOptionVersion"/>
  <enum-type name="QStyleOptionToolBoxV2::TabPosition"/>
  <enum-type name="QStyleOptionViewItemV3::StyleOptionVersion"/>
  <enum-type name="QTransform::TransformationType"/>
  <enum-type name="QTreeWidgetItem::ChildIndicatorPolicy"/>
  <enum-type name="QWizard::WizardOption" flags="QWizard::WizardOptions"/>
  <enum-type name="QWizard::WizardPixmap"/>
  <enum-type name="QWizard::WizardStyle"/>
  <enum-type name="QImageIOPlugin::Capability" flags="QImageIOPlugin::Capabilities"/>
  <enum-type name="QStackedLayout::StackingMode"/>

  <enum-type name="QWizard::WizardButton">
    <reject-enum-value name="NStandardButtons"/>
    <reject-enum-value name="NButtons"/>
  </enum-type>

  <enum-type name="QAccessible::Action">
    <reject-enum-value name="FirstStandardAction"/>
    <reject-enum-value name="LastStandardAction"/>
  </enum-type>

  <enum-type name="QBoxLayout::Direction">
    <reject-enum-value name="Down"/>
    <reject-enum-value name="Up"/>
  </enum-type>


  <enum-type name="QClipboard::Mode">
    <reject-enum-value name="LastMode"/>
  </enum-type>

  <enum-type name="QDialogButtonBox::StandardButton" flags="QDialogButtonBox::StandardButtons">
    <reject-enum-value name="FirstButton"/>
    <reject-enum-value name="LastButton"/>
    <reject-enum-value name="YesAll"/>
    <reject-enum-value name="NoAll"/>
    <reject-enum-value name="Default"/>
    <reject-enum-value name="Escape"/>
    <reject-enum-value name="FlagMask"/>
    <reject-enum-value name="ButtonMask"/>
  </enum-type>

  <enum-type name="QDockWidget::DockWidgetFeature" flags="QDockWidget::DockWidgetFeatures"/>

  <enum-type name="QFont::StyleHint">
    <reject-enum-value name="SansSerif"/>
    <reject-enum-value name="Serif"/>
    <reject-enum-value name="TypeWriter"/>
    <reject-enum-value name="Decorative"/>
  </enum-type>

  <enum-type name="QFontDatabase::WritingSystem">
    <reject-enum-value name="Other"/>
  </enum-type>

  <enum-type name="QHeaderView::ResizeMode">
    <reject-enum-value name="Custom"/>
  </enum-type>


  <enum-type name="QMessageBox::StandardButton" flags="QMessageBox::StandardButtons">
    <reject-enum-value name="FirstButton"/>
    <reject-enum-value name="LastButton"/>
    <reject-enum-value name="YesAll"/>
    <reject-enum-value name="NoAll"/>
  </enum-type>

  <enum-type name="QPalette::ColorGroup">
    <reject-enum-value name="Normal"/>
  </enum-type>

  <enum-type name="QPalette::ColorRole">
    <reject-enum-value name="NColorRoles"/>
    <reject-enum-value name="Foreground"/>
    <reject-enum-value name="Background"/>
  </enum-type>

  <enum-type name="QPrinter::PageSize">
    <reject-enum-value name="NPageSize"/>
    <reject-enum-value name="NPaperSize"/>
  </enum-type>

  <enum-type name="QSlider::TickPosition">
<!--    <reject-enum-value name="TicksLeft"/>
    <reject-enum-value name="TicksRight"/>-->
  </enum-type>

  <enum-type name="QStyle::StyleHint" extensible="yes">
    <reject-enum-value name="SH_ScrollBar_StopMouseOverSlider"/>
  </enum-type>


  <enum-type name="QTextFormat::FormatType"/>

  <enum-type name="QTextFormat::Property">
    <reject-enum-value name="FontSizeIncrement"/>
    <reject-enum-value name="FirstFontProperty"/>
    <reject-enum-value name="LastFontProperty"/>
  </enum-type>

  <value-type name="QTransform">
    <modify-function signature="operator=(QTransform)" remove="all"/>
    <modify-function signature="map(int,int,int*,int*)const" remove="all"/>
    <modify-function signature="map(double,double,double*,double*)const" remove="all"/>

    <modify-function signature="operator*=(double)" access="private"/>
    <modify-function signature="operator+=(double)" access="private"/>
    <modify-function signature="operator-=(double)" access="private"/>
    <modify-function signature="operator/=(double)" access="private"/>
    <modify-function signature="operator*(QTransform)const" rename="multiplied"/>
    <modify-function signature="operator*=(QTransform)" access="private"/>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QTransform___" quote-before-line="}// class"/>
        </inject-code>

        <modify-function signature="inverted(bool*)const">
            <access modifier="private"/>
            <modify-argument index="1">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>

        <modify-function signature="rotate(double,Qt::Axis)">
            <modify-argument index="1">
                <remove-default-expression/>
            </modify-argument>
            <access modifier="private"/>
            <rename to="rotate_private"/>
        </modify-function>
        <inject-code>
    /**
     * Rotates the transformation around the given axis.
     *
     * @return The rotated transformation.
     */
        <insert-template name="core.private_function_return_self">
            <replace from="%RETURN_TYPE" to="QTransform"/>
            <replace from="%FUNCTION_NAME" to="rotate"/>
            <replace from="%ARGUMENTS" to="double angle, Qt.Axis axis"/>
            <replace from="%ARGUMENT_NAMES" to="angle, axis"/>
        </insert-template>

    /**
     * Rotates the transformation around the z-axis.
     *
     * @return The rotated transformation.
     */
        <insert-template name="core.private_function_return_self">
            <replace from="%RETURN_TYPE" to="QTransform"/>
            <replace from="%FUNCTION_NAME" to="rotate"/>
            <replace from="%ARGUMENTS" to="double angle"/>
            <replace from="%ARGUMENT_NAMES" to="angle"/>
        </insert-template>
        </inject-code>

        <modify-function signature="rotateRadians(double,Qt::Axis)">
        <modify-argument index="1">
            <remove-default-expression/>
        </modify-argument>
        <access modifier="private"/>
        <rename to="rotateRadians_private"/>
    </modify-function>
    <inject-code>
    /**
     * Rotates the transformation around the given axis.
     *
     * @return The rotated transformation.
     */
        <insert-template name="core.private_function_return_self">
            <replace from="%RETURN_TYPE" to="QTransform"/>
            <replace from="%FUNCTION_NAME" to="rotateRadians"/>
            <replace from="%ARGUMENTS" to="double angle, Qt.Axis axis"/>
            <replace from="%ARGUMENT_NAMES" to="angle, axis"/>
        </insert-template>

    /**
     * Rotates the transformation around the z-axis.
     *
     * @return The rotated transformation.
     */
        <insert-template name="core.private_function_return_self">
            <replace from="%RETURN_TYPE" to="QTransform"/>
            <replace from="%FUNCTION_NAME" to="rotateRadians"/>
            <replace from="%ARGUMENTS" to="double angle"/>
            <replace from="%ARGUMENT_NAMES" to="angle"/>
        </insert-template>
    </inject-code>

    <modify-function signature="scale(double,double)">
        <access modifier="private"/>
        <rename to="scale_private"/>
    </modify-function>
    <inject-code>
    /**
     * Scales the transformation using x and y.
     *
     * @return The scaled transformation.
     */
        <insert-template name="core.private_function_return_self">
            <replace from="%RETURN_TYPE" to="QTransform"/>
            <replace from="%FUNCTION_NAME" to="scale"/>
            <replace from="%ARGUMENTS" to="double x, double y"/>
            <replace from="%ARGUMENT_NAMES" to="x, y"/>
        </insert-template>
    </inject-code>

    <modify-function signature="shear(double,double)">
        <access modifier="private"/>
        <rename to="shear_private"/>
    </modify-function>
    <inject-code>
    /**
      * Shears the transformation using x and y.
      *
      * @return The sheared transformation.
      */
        <insert-template name="core.private_function_return_self">
            <replace from="%RETURN_TYPE" to="QTransform"/>
            <replace from="%FUNCTION_NAME" to="shear"/>
            <replace from="%ARGUMENTS" to="double x, double y"/>
            <replace from="%ARGUMENT_NAMES" to="x, y"/>
        </insert-template>
    </inject-code>

    <modify-function signature="translate(double,double)">
        <access modifier="private"/>
        <rename to="translate_private"/>
    </modify-function>
    <inject-code>
    /**
     * Translates the transformation using x and y.
     *
     * @return The translated transformation.
     */
        <insert-template name="core.private_function_return_self">
            <replace from="%RETURN_TYPE" to="QTransform"/>
            <replace from="%FUNCTION_NAME" to="translate"/>
            <replace from="%ARGUMENTS" to="double x, double y"/>
            <replace from="%ARGUMENT_NAMES" to="x, y"/>
        </insert-template>
    </inject-code>

    <modify-function signature="quadToQuad(QPolygonF,QPolygonF,QTransform&amp;)">
        <access modifier="private"/>
        <rename to="quadToQuadPrivate"/>
    </modify-function>

    <modify-function signature="quadToSquare(QPolygonF,QTransform&amp;)">
        <access modifier="private"/>
        <rename to="quadToSquarePrivate"/>
    </modify-function>

    <modify-function signature="squareToQuad(QPolygonF,QTransform&amp;)">
        <access modifier="private"/>
        <rename to="squareToQuadPrivate"/>
    </modify-function>

    </value-type>

  <value-type name="QStyleOption" delete-in-main-thread="yes" polymorphic-base="yes" polymorphic-id-expression="%1-&gt;type == QStyleOption::SO_Default">
      <modify-function signature="operator=(QStyleOption)" remove="all"/>
      <modify-function signature="init(const QWidget*)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-field name="version">
          <rename to="version_"/>
      </modify-field>
  </value-type>
  <value-type name="QStyleOptionGraphicsItem" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionGraphicsItem::Type &amp;&amp; %1-&gt;version == QStyleOptionGraphicsItem::Version"/>
  <value-type name="QStyleOptionSizeGrip" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionSizeGrip::Type &amp;&amp; %1-&gt;version == QStyleOptionSizeGrip::Version"/>
  <value-type name="QStyleOptionButton" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionButton::Type &amp;&amp; %1-&gt;version == QStyleOptionButton::Version"/>
  <value-type name="QStyleOptionComboBox" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionComboBox::Type &amp;&amp; %1-&gt;version == QStyleOptionComboBox::Version"/>
  <value-type name="QStyleOptionComplex" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionComplex::Type &amp;&amp; %1-&gt;version == QStyleOptionComplex::Version"/>
  <value-type name="QStyleOptionDockWidget" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionDockWidget::Type &amp;&amp; %1-&gt;version == QStyleOptionDockWidget::Version"/>
  <value-type name="QStyleOptionDockWidgetV2" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionDockWidgetV2::Type &amp;&amp; %1-&gt;version == QStyleOptionDockWidgetV2::Version">
      <modify-function signature="operator=(QStyleOptionDockWidget)" remove="all"/>
  </value-type>
  <value-type name="QStyleOptionFocusRect" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionFocusRect::Type &amp;&amp; %1-&gt;version == QStyleOptionFocusRect::Version"/>
  <value-type name="QStyleOptionFrame" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionFrame::Type &amp;&amp; %1-&gt;version == QStyleOptionFrame::Version"/>

  <value-type name="QStyleOptionFrameV2" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionFrameV2::Type &amp;&amp; %1-&gt;version == QStyleOptionFrameV2::Version">
    <modify-function signature="operator=(QStyleOptionFrame)" remove="all"/>
  </value-type>

  <value-type name="QStyleOptionGroupBox" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionGroupBox::Type &amp;&amp; %1-&gt;version == QStyleOptionGroupBox::Version"/>
  <value-type name="QStyleOptionHeader" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionHeader::Type &amp;&amp; %1-&gt;version == QStyleOptionHeader::Version"/>
  <value-type name="QStyleOptionMenuItem" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionMenuItem::Type &amp;&amp; %1-&gt;version == QStyleOptionMenuItem::Version"/>
  <value-type name="QStyleOptionProgressBar" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionProgressBar::Type &amp;&amp; %1-&gt;version == QStyleOptionProgressBar::Version"/>

  <value-type name="QStyleOptionProgressBarV2" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionProgressBarV2::Type &amp;&amp; %1-&gt;version == QStyleOptionProgressBarV2::Version">
    <modify-function signature="operator=(QStyleOptionProgressBar)" remove="all"/>
  </value-type>

  <value-type name="QStyleOptionRubberBand" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionRubberBand::Type &amp;&amp; %1-&gt;version == QStyleOptionRubberBand::Version"/>
  <value-type name="QStyleOptionSlider" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionSlider::Type &amp;&amp; %1-&gt;version == QStyleOptionSlider::Version"/>
  <value-type name="QStyleOptionSpinBox" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionSpinBox::Type &amp;&amp; %1-&gt;version == QStyleOptionSpinBox::Version"/>
  <value-type name="QStyleOptionTab" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionTab::Type &amp;&amp; %1-&gt;version == QStyleOptionTab::Version"/>
  <value-type name="QStyleOptionTabV2" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionTabV2::Type &amp;&amp; %1-&gt;version == QStyleOptionTabV2::Version">
    <modify-function signature="operator=(const QStyleOptionTab &amp;)" remove="all"/>
  </value-type>
  <value-type name="QStyleOptionTabBarBase" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionTabBarBase::Type &amp;&amp; %1-&gt;version == QStyleOptionTabBarBase::Version"/>
  <value-type name="QStyleOptionTabWidgetFrame" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionTabWidgetFrame::Type &amp;&amp; %1-&gt;version == QStyleOptionTabWidgetFrame::Version"/>
  <value-type name="QStyleOptionTitleBar" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionTitleBar::Type &amp;&amp; %1-&gt;version == QStyleOptionTitleBar::Version"/>
  <value-type name="QStyleOptionToolBar" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionToolBar::Type &amp;&amp; %1-&gt;version == QStyleOptionToolBar::Version"/>
  <value-type name="QStyleOptionToolBox" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionToolBox::Type &amp;&amp; %1-&gt;version == QStyleOptionToolBox::Version"/>
  <value-type name="QStyleOptionToolBoxV2" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionToolBoxV2::Type &amp;&amp; %1-&gt;version == QStyleOptionToolBoxV2::Version">
    <modify-function signature="operator=(QStyleOptionToolBox)" remove="all"/>
  </value-type>
  <value-type name="QStyleOptionToolButton" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionToolButton::Type &amp;&amp; %1-&gt;version == QStyleOptionToolButton::Version"/>
  <value-type name="QStyleOptionViewItem" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionViewItem::Type &amp;&amp; %1-&gt;version == QStyleOptionViewItem::Version"/>
  <value-type name="QStyleOptionViewItemV2" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionViewItemV2::Type &amp;&amp; %1-&gt;version == QStyleOptionViewItemV2::Version">
    <modify-function signature="operator=(QStyleOptionViewItem)" remove="all"/>
  </value-type>
  <value-type name="QStyleOptionViewItemV3" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionViewItemV3::Type &amp;&amp; %1-&gt;version == QStyleOptionViewItemV3::Version">
    <modify-function signature="operator=(QStyleOptionViewItem)" remove="all"/>
  </value-type>
  <value-type name="QStyleOptionViewItemV4" delete-in-main-thread="yes" polymorphic-id-expression="%1-&gt;type == QStyleOptionViewItemV4::Type &amp;&amp; %1-&gt;version == QStyleOptionViewItemV4::Version">
    <modify-function signature="operator=(QStyleOptionViewItem)" remove="all"/>
  </value-type>
  <value-type name="QTextFragment" delete-in-main-thread="yes">
    <modify-function signature="operator=(QTextFragment)" remove="all"/>
  </value-type>
  <value-type name="QBitmap" delete-in-main-thread="yes">
    <modify-function signature="operator=(const QPixmap &amp;)" remove="all"/>
    <modify-function signature="QBitmap(QString,const char*)" access="private">
        <modify-argument index="2"> <remove-default-expression/> </modify-argument>
    </modify-function>

    <modify-function signature="fromData(QSize,const unsigned char*,QImage::Format)">
        <access modifier="private"/>
        <modify-argument index="3">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QBitmap___" quote-before-line="}// class"/>
        </inject-code>
    </value-type>
  <value-type name="QTextInlineObject" delete-in-main-thread="yes"/>
  <value-type name="QSizePolicy"/>
  <value-type name="QTableWidgetSelectionRange"/>
  <value-type name="QTextDocumentFragment" delete-in-main-thread="yes">
    <modify-function signature="operator=(QTextDocumentFragment)" remove="all"/>
  </value-type>
  <value-type name="QTextOption" delete-in-main-thread="yes">
    <modify-function signature="operator=(const QTextOption &amp;)" remove="all"/>
  </value-type>
  <value-type name="QTextLine" delete-in-main-thread="yes">
    <modify-function signature="cursorToX(int*,QTextLine::Edge)const">
        <remove/>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QTextLine___" quote-before-line="}// class"/>
        </inject-code>
    </value-type>
  <value-type name="QTextTableFormat" delete-in-main-thread="yes"/>
  <value-type name="QTextImageFormat" delete-in-main-thread="yes"/>
  <value-type name="QTextFrameFormat" delete-in-main-thread="yes">
    <modify-function signature="isValid()const" access="non-final"/>
  </value-type>
  <value-type name="QTextLength" delete-in-main-thread="yes"/>
  <value-type name="QItemSelectionRange">
      <modify-function signature="intersect(QItemSelectionRange)const" remove="all"/> <!--### Obsolete in 4.3-->
  </value-type>

  <value-type name="QPainterPath">
    <modify-function signature="operator=(QPainterPath)" remove="all"/>
  </value-type>
  <value-type name="QPalette">
    <modify-function signature="operator=(const QPalette&amp;)" remove="all"/>

      <modify-function signature="QPalette(QColor, QColor, QColor, QColor, QColor, QColor, QColor)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="background()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="foreground()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="serialNumber()const" remove="all"/> <!--### Obsolete in 4.3-->
  </value-type>
  <value-type name="QKeySequence">
    <modify-function signature="operator=(QKeySequence)" remove="all"/>
    <modify-function signature="operator int()const" access="private"/>
    <modify-function signature="operator[](uint)const" access="private"/>

        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QKeySequence___" quote-before-line="}// class"/>
        </inject-code>

    </value-type>

  <value-type name="QPicture" delete-in-main-thread="yes">
    <modify-function signature="operator=(QPicture)" remove="all"/>
    <modify-function signature="pictureFormat(QString)">
        <remove/>
    </modify-function>

    <modify-function signature="inputFormatList()" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="inputFormats()" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="outputFormatList()" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="outputFormats()" remove="all"/> <!--### Obsolete in 4.3-->
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QPicture___" quote-before-line="}// class"/>
        </inject-code>
        <extra-includes>
            <include file-name="qt.core.QIODevice" location="java"/>
        </extra-includes>
        <modify-function signature="load(QIODevice*,const char*)">
            <access modifier="private"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>


        <modify-function signature="load(QString,const char*)">
            <access modifier="private"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>


        <modify-function signature="save(QIODevice*,const char*)">
            <access modifier="private"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>


        <modify-function signature="save(QString,const char*)">
            <access modifier="private"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>

<!--
        <modify-function signature="setData(const char*,uint)">
            <modify-argument index="1">
                <replace-type modified-type="byte[]"/>
                <conversion-rule class="shell">
                    jbyteArray %out = __jni_env-&gt;NewByteArray(%2);
                    __jni_env-&gt;SetByteArrayRegion(%out, 0, %2, (jbyte *) %in);
                </conversion-rule>
                <conversion-rule class="native">
                    char *%out = (char *) __jni_env-&gt;GetByteArrayElements((jbyteArray) %in, 0);
                    char *__ptr = %out;
                    Q_UNUSED(__ptr)
                </conversion-rule>
            </modify-argument>

            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                    // nothing
                </conversion-rule>
                <conversion-rule class="native">
                    int %out = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                </conversion-rule>
            </modify-argument>
        </modify-function>
-->
        <modify-function signature="pictureFormat(QString)">
            <remove/>
        </modify-function>

        <modify-function signature="data()const">
            <access modifier="private"/>
            <rename to="data_private"/>
        </modify-function>

    </value-type>

  <value-type name="QRegion"> <!-- expense-limit="4096"> -->
    <modify-function signature="operator=(QRegion)" remove="all"/>
    <modify-function signature="operator&amp;=(QRegion)" remove="all"/>
    <modify-function signature="operator+=(QRegion)" remove="all"/>
    <modify-function signature="operator-=(QRegion)" remove="all"/>
    <modify-function signature="operator^=(QRegion)" remove="all"/>
    <modify-function signature="operator|=(QRegion)" remove="all"/>
    <modify-function signature="operator&amp;(QRegion)const" remove="all"/>
    <modify-function signature="operator+(QRegion)const" remove="all"/>
    <modify-function signature="operator-(QRegion)const" remove="all"/>
    <modify-function signature="operator^(QRegion)const" remove="all"/>
    <modify-function signature="operator|(QRegion)const" remove="all"/>
    <modify-function signature="eor(QRegion)const" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="intersect(QRegion)const" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="subtract(QRegion)const" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="unite(QRegion)const" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="operator&amp;=(QRect)" remove="all"/>
    <modify-function signature="operator+=(QRect)" remove="all"/>

  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QRegion___" quote-before-line="}// class"/>
        </inject-code>
        <modify-function signature="setRects(const QRect*,int)">
            <access modifier="private"/>
        </modify-function>

    </value-type>

  <value-type name="QTextBlock" delete-in-main-thread="yes">
    <modify-function signature="operator=(QTextBlock)" remove="all"/>
    <modify-function signature="setUserData(QTextBlockUserData *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
     </modify-function>
  </value-type>
  <value-type name="QTextBlockFormat" delete-in-main-thread="yes"/>
  <value-type name="QTextTableCellFormat" delete-in-main-thread="yes"/>
  <value-type name="QTextCharFormat" delete-in-main-thread="yes">
    <modify-function signature="isValid()const" access="non-final"/>

      <modify-function signature="anchorName()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setAnchorName(QString)" remove="all"/> <!--### Obsolete in 4.3-->
  </value-type>
  <value-type name="QTextFormat" delete-in-main-thread="yes">
    <modify-function signature="operator=(QTextFormat)" remove="all"/>
    <modify-function signature="isValid()const" access="non-final"/>

  </value-type>

  <value-type name="QTextListFormat" delete-in-main-thread="yes"/>
  <value-type name="QPolygon">
    <extra-includes>
        <include file-name="qt.core.QPoint" location="java"/>
    </extra-includes>
    
    <modify-function signature="QPolygon(int, const int *)" remove="all"/>
    <modify-function signature="operator+(QVector&lt;QPoint&gt;)const" remove="all"/>
    <modify-function signature="operator&lt;&lt;(QPoint)" remove="all"/>
    <modify-function signature="operator&lt;&lt;(QVector&lt;QPoint&gt;)" remove="all"/>
    
    <inject-code class="java">
    public final void insert(int i, QPoint t) {
        qtd_QPolygon_insert_int_QPoint(__nativeId, i, t);
    }
    
    public final void insert(int i, int n, QPoint t) {
        qtd_QPolygon_insert_int_int_QPoint(__nativeId, i, n, t);
    }
    </inject-code>
    <inject-code class="java-free">
private extern(C) void  qtd_QPolygon_insert_int_QPoint(void* __this_nativeId,
 int i0,
 QPoint t1);
private extern(C) void  qtd_QPolygon_insert_int_int_QPoint(void* __this_nativeId,
 int i0,
 int n1,
 QPoint t2);
    </inject-code>
    <inject-code class="native">
// QPolygon::insert(int i, const QPoint &amp; t)
extern "C" DLL_PUBLIC void qtd_QPolygon_insert_int_QPoint
(void* __this_nativeId,
 int i0,
 QPoint t1)
{
    QPolygon *__qt_this = (QPolygon *) __this_nativeId;
    __qt_this->insert((int )i0, (const QPoint&amp; )t1);

}

// QPolygon::insert(int i, int n, const QPoint &amp; t)
extern "C" DLL_PUBLIC void qtd_QPolygon_insert_int_int_QPoint
(void* __this_nativeId,
 int i0,
 int n1,
 QPoint t2)
{
    QPolygon *__qt_this = (QPolygon *) __this_nativeId;
    __qt_this->insert((int )i0, (int )n1, (const QPoint&amp; )t2);

}
    </inject-code>
    
    <inject-code>
        <import-file name="typesystem_gui-java.java" quote-after-line="class QPolygon___" quote-before-line="}// class"/>
    </inject-code>
<!-- qtd2
        <inject-code class="native">
      extern "C" JNIEXPORT void JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_gui_QPolygon_add_1private)
      (JNIEnv *__jni_env, jobject, jlong nativeId, jint x, jint y)
      {
          Q_UNUSED(__jni_env);
          QPolygon *polygon = (QPolygon *) qtjambi_from_jlong(nativeId);
          if (!polygon)
              return;
          *polygon &lt;&lt; QPoint(x, y);
      }
        </inject-code> -->
    </value-type>

  <value-type name="QPolygonF">
    <modify-function signature="operator+(QVector&lt;QPointF&gt;)const" remove="all"/>
    <modify-function signature="operator&lt;&lt;(QPointF)" remove="all"/>
    <modify-function signature="operator&lt;&lt;(QVector&lt;QPointF&gt;)" remove="all"/>
  
        <extra-includes>
            <include file-name="qt.core.QPoint" location="java"/>
        </extra-includes>

        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QPolygonF___" quote-before-line="}// class"/>
        </inject-code>
<!--
        <inject-code class="native">
      extern "C" JNIEXPORT void JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_gui_QPolygonF_add_1private)
      (JNIEnv *__jni_env, jobject, jlong nativeId, jdouble x, jdouble y)
      {
          Q_UNUSED(__jni_env);
          QPolygonF *polygon = (QPolygonF *) qtjambi_from_jlong(nativeId);
          if (!polygon)
              return;
          *polygon &lt;&lt; QPointF(x, y);
      }
        </inject-code>
		-->
    <inject-code class="java">
    public final void insert(int i, QPointF t) {
        qtd_QPolygonF_insert_int_QPointF(__nativeId, i, t);
    }

    public final void insert(int i, int n, QPointF t) {
        qtd_QPolygonF_insert_int_int_QPointF(__nativeId, i, n, t);
    }
    </inject-code>
    <inject-code class="java-free">
private extern(C) void  qtd_QPolygonF_insert_int_QPointF(void* __this_nativeId,
 int i0,
 QPointF t1);
private extern(C) void  qtd_QPolygonF_insert_int_int_QPointF(void* __this_nativeId,
 int i0,
 int n1,
 QPointF t2);
    </inject-code>
    <inject-code class="native">
// QPolygonF::insert(int i, const QPointF &amp; t)
extern "C" DLL_PUBLIC void qtd_QPolygonF_insert_int_QPointF
(void* __this_nativeId,
 int i0,
 QPointF t1)
{
    QPolygonF *__qt_this = (QPolygonF *) __this_nativeId;
    __qt_this->insert((int )i0, (const QPointF&amp; )t1);

}

// QPolygonF::insert(int i, int n, const QPointF &amp; t)
extern "C" DLL_PUBLIC void qtd_QPolygonF_insert_int_int_QPointF
(void* __this_nativeId,
 int i0,
 int n1,
 QPointF t2)
{
    QPolygonF *__qt_this = (QPolygonF *) __this_nativeId;
    __qt_this->insert((int )i0, (int )n1, (const QPointF&amp; )t2);

}
    </inject-code>
    </value-type>

  <value-type name="QIcon" delete-in-main-thread="yes">

    <inject-code class="java">
        <insert-template name="gui.class_from_variant_java">
            <replace from="%CLASS_NAME" to="QIcon"/>
        </insert-template>

    </inject-code>   
    <inject-code class="java-free">
        <insert-template name="gui.class_from_variant_java_free">
            <replace from="%CLASS_NAME" to="QIcon"/>
        </insert-template>
    </inject-code>
    <inject-code class="native">
        <insert-template name="gui.class_from_variant_native">
            <replace from="%CLASS_NAME" to="QIcon"/>
        </insert-template>
    </inject-code>

    <modify-function signature="operator=(QIcon)" remove="all"/>
    <modify-function signature="serialNumber()const" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="QIcon(QIconEngineV2 *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="QIcon(QIconEngine *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="operator QVariant()const" access="private"/>
    <inject-code class="java">
        public final QVariant toVariant() {
            return operator_cast_QVariant();
        }
    </inject-code>

  </value-type>

  <value-type name="QTextFrame::iterator" delete-in-main-thread="yes">
    <include file-name="QTextFrame" location="global"/>
    <modify-function signature="operator++(int)" remove="all"/>
    <modify-function signature="operator--(int)" remove="all"/>
    <modify-function signature="operator=(QTextFrame::iterator)" remove="all"/>
    <modify-function signature="operator++()" access="private"/>
    <modify-function signature="operator--()" access="private"/>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QTextFrame_iterator___" quote-before-line="}// class"/>
        </inject-code>

    </value-type>

  <value-type name="QTreeWidgetItemIterator" delete-in-main-thread="yes">
    <custom-constructor>
    return new QTreeWidgetItemIterator(*copy);
    </custom-constructor>
    <custom-destructor>
    delete copy;
    </custom-destructor>
    <modify-function signature="operator=(QTreeWidgetItemIterator)" remove="all"/>
    <modify-function signature="operator++(int)" remove="all"/>
    <modify-function signature="operator--(int)" remove="all"/>
    <modify-function signature="operator+=(int)" access="private"/>
    <modify-function signature="operator-=(int)" access="private"/>
    <modify-function signature="operator++()" access="private"/>
    <modify-function signature="operator--()" access="private"/>
    <modify-function signature="operator*()const" access="private"/>
   
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QTreeWidgetItemIterator___" quote-before-line="}// class"/>
        </inject-code>

    </value-type>

  <value-type name="QTextBlock::iterator" delete-in-main-thread="yes">
    <include file-name="QTextBlock" location="global"/>

    <modify-function signature="operator++()" access="private"/>
    <modify-function signature="operator--()" access="private"/>
    <modify-function signature="operator++(int)" remove="all"/>
    <modify-function signature="operator--(int)" remove="all"/>
   
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QTextBlock_iterator___" quote-before-line="}// class"/>
        </inject-code>

    </value-type>

  <value-type name="QAbstractTextDocumentLayout::PaintContext" delete-in-main-thread="yes">
    <include file-name="QAbstractTextDocumentLayout" location="global"/>
  </value-type>
  <value-type name="QAbstractTextDocumentLayout::Selection" delete-in-main-thread="yes"/>

  <value-type name="QPixmap" delete-in-main-thread="yes">
    <modify-function signature="operator=(QPixmap)" remove="all"/>
    <modify-function signature="operator!()const" remove="all"/>
    <modify-function signature="operator QVariant()const" access="private"/>
    <modify-function signature="QPixmap(const char **)" access="private"/>
    <modify-function signature="serialNumber()const" remove="all"/> <!--### Obsolete in 4.3-->
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QPixmap___" quote-before-line="}// class"/>
        </inject-code>
        <modify-function signature="fill(const QColor &amp;)">
            <modify-argument index="1">
                <replace-default-expression with="QColor.White"/>
            </modify-argument>
        </modify-function>


        <extra-includes>
            <include file-name="QBitmap" location="global"/>
            <include file-name="QMatrix" location="global"/>
        </extra-includes>
        
    <inject-code class="java">
        <insert-template name="gui.class_from_variant_java">
            <replace from="%CLASS_NAME" to="QPixmap"/>
        </insert-template>
    </inject-code>   
    <inject-code class="java-free">
        <insert-template name="gui.class_from_variant_java_free">
            <replace from="%CLASS_NAME" to="QPixmap"/>
        </insert-template>
    </inject-code>
    <inject-code class="native">
        <insert-template name="gui.class_from_variant_native_shell">
            <replace from="%CLASS_NAME" to="QPixmap"/>
        </insert-template>
    </inject-code>

        <modify-function signature="save(QIODevice *, const char *, int) const">
            <access modifier="private"/>
            <rename to="private_save"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
            <modify-argument index="3">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>
        <inject-code>
            <insert-template name="gui.pixmap_save">
                <replace from="%INPUT_TYPE" to="qt.core.QIODevice"/>
                <replace from="%INPUT_NAME" to="dev"/>
            </insert-template>
        </inject-code>

        <modify-function signature="save(const QString &amp;, const char *, int) const">
            <access modifier="private"/>
            <rename to="private_save"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
            <modify-argument index="3">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>
        <inject-code>
            <insert-template name="gui.pixmap_save">
                <replace from="%INPUT_TYPE" to="String"/>
                <replace from="%INPUT_NAME" to="fileName"/>
            </insert-template>
        </inject-code>

        <modify-function signature="QPixmap(QString,const char*,QFlags&lt;Qt::ImageConversionFlag&gt;)">
            <access modifier="private"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
            <modify-argument index="3">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>
        <inject-code>
            <insert-template name="gui.pixmap_constructor"/>
        </inject-code>

        <modify-function signature="load(QString,const char*,QFlags&lt;Qt::ImageConversionFlag&gt;)">
            <access modifier="private"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
            <modify-argument index="3">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>
        <inject-code>
            <insert-template name="gui.pixmap_load">
                <replace from="%FUNCTION_NAME" to="load"/>
                <replace from="%INPUT_TYPE" to="String"/>
                <replace from="%INPUT_NAME" to="fileName"/>
                <replace from="%OUTPUT_NAME" to="fileName"/>
            </insert-template>
        </inject-code>

        <modify-function signature="loadFromData(const unsigned char*,uint,const char*,QFlags&lt;Qt::ImageConversionFlag&gt;)">
            <access modifier="private"/>
            <modify-argument index="3">
                <remove-default-expression/>
            </modify-argument>
            <modify-argument index="4">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>
        <inject-code>
            <insert-template name="gui.pixmap_load">
                <replace from="%FUNCTION_NAME" to="loadFromData"/>
                <replace from="%INPUT_TYPE" to="byte[]"/>
                <replace from="%INPUT_NAME" to="data"/>
                <replace from="%OUTPUT_NAME" to="qt.internal.QtJambiInternal.byteArrayToNativePointer(data), data.length"/>
            </insert-template>
        </inject-code>

        <modify-function signature="loadFromData(QByteArray,const char*,QFlags&lt;Qt::ImageConversionFlag&gt;)">
            <access modifier="private"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
            <modify-argument index="3">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>
        <inject-code>
            <insert-template name="gui.pixmap_load">
                <replace from="%FUNCTION_NAME" to="loadFromData"/>
                <replace from="%INPUT_TYPE" to="qt.core.QByteArray"/>
                <replace from="%INPUT_NAME" to="data"/>
                <replace from="%OUTPUT_NAME" to="data"/>
            </insert-template>
        </inject-code>
    </value-type>

  <value-type name="QTextCursor" delete-in-main-thread="yes">
    <extra-includes>
        <include file-name="QTextBlock" location="global"/>
        <include file-name="QTextDocumentFragment" location="global"/>
    </extra-includes>
    <modify-function signature="operator=(QTextCursor)" remove="all"/>
    <modify-function signature="selectedTableCells(int*,int*,int*,int*)const">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QTextCursor___" quote-before-line="}// class"/>
        </inject-code>
    </value-type>

  <value-type name="QTextLayout::FormatRange">
    <include file-name="QTextLayout" location="global"/>
  </value-type>

  <value-type name="QInputMethodEvent::Attribute">
    <include file-name="QInputMethodEvent" location="global"/>
    <custom-constructor>
    return new QInputMethodEvent::Attribute(copy-&gt;type, copy-&gt;start, copy-&gt;length, copy-&gt;value);
    </custom-constructor>
    <custom-destructor>
    delete copy;
    </custom-destructor>
  </value-type>

  <value-type name="QItemSelection" delete-in-main-thread="yes">

    <modify-function signature="operator+(const QList&lt;QItemSelectionRange&gt;&amp;)const" remove="all"/>
    <modify-function signature="operator+=(const QList&lt;QItemSelectionRange&gt;&amp;)" remove="all"/>
    <modify-function signature="operator+=(const QItemSelectionRange&amp;)" remove="all"/>
    <modify-function signature="operator&lt;&lt;(const QList&lt;QItemSelectionRange&gt;&amp;)" remove="all"/>
    <modify-function signature="operator&lt;&lt;(QItemSelectionRange)" remove="all"/>
<!--  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QItemSelection___" quote-before-line="}// class"/>
        </inject-code>
        <modify-function signature="split(QItemSelectionRange,QItemSelectionRange,QItemSelection*)">
            <access modifier="private"/>
        </modify-function>
-->

    </value-type>

  <value-type name="QMatrix">
      <extra-includes>
        <include file-name="QPainterPath" location="global"/>
      </extra-includes>

      <modify-function signature="map(int,int,int*,int*)const" remove="all"/>
      <modify-function signature="map(double,double,double*,double*)const" remove="all"/>
      <modify-function signature="operator=(QMatrix)" remove="all"/>

      <modify-function signature="operator*(QMatrix)const" access="private"/>
      <modify-function signature="operator*=(QMatrix)" access="private"/>
      <modify-function signature="rotate(double)" access="private" rename="rotate_private"/>
      <modify-function signature="scale(double,double)" access="private" rename="scale_private"/>
      <modify-function signature="shear(double,double)" access="private" rename="shear_private"/>
      <modify-function signature="translate(double,double)" access="private" rename="translate_private"/>

      <modify-function signature="inverted(bool*)const">
        <access modifier="private"/>
        <modify-argument index="1">
            <remove-default-expression/>
        </modify-argument>
      </modify-function>

    <inject-code>
      <insert-template name="core.unary_other_type">
        <replace from="%FUNCTION_NAME" to="rotate"/>
        <replace from="%OUT_TYPE" to="QMatrix"/>
        <replace from="%IN_TYPE" to="double"/>
      </insert-template>

      <insert-template name="core.private_function_return_self">
        <replace from="%RETURN_TYPE" to="QMatrix"/>
        <replace from="%FUNCTION_NAME" to="scale"/>
        <replace from="%ARGUMENTS" to="double sx, double sy"/>
        <replace from="%ARGUMENT_NAMES" to="sx, sy"/>
      </insert-template>

      <insert-template name="core.private_function_return_self">
        <replace from="%RETURN_TYPE" to="QMatrix"/>
        <replace from="%FUNCTION_NAME" to="shear"/>
        <replace from="%ARGUMENTS" to="double sh, double sv"/>
        <replace from="%ARGUMENT_NAMES" to="sh, sv"/>
      </insert-template>

      <insert-template name="core.private_function_return_self">
        <replace from="%RETURN_TYPE" to="QMatrix"/>
        <replace from="%FUNCTION_NAME" to="translate"/>
        <replace from="%ARGUMENTS" to="double dx, double dy"/>
        <replace from="%ARGUMENT_NAMES" to="dx, dy"/>
      </insert-template>
    </inject-code>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QMatrix___" quote-before-line="}// class"/>
        </inject-code>

    </value-type>

  <value-type name="QConicalGradient" polymorphic-id-expression="%1-&gt;type() == QGradient::ConicalGradient">
    <custom-constructor>
    return new QConicalGradient(copy-&gt;center(), copy-&gt;angle());
    </custom-constructor>
    <custom-destructor>
    delete copy;
    </custom-destructor>
  </value-type>

  <value-type name="QFontInfo"> <!-- delete-in-main-thread="yes" expense-cost="1" expense-limit="1000"> -->
    <custom-constructor>
    return new QFontInfo(*copy);
    </custom-constructor>
    <custom-destructor>
    delete copy;
    </custom-destructor>
    <modify-function signature="operator=(QFontInfo)" remove="all"/>

  </value-type>

  <value-type name="QRadialGradient" polymorphic-id-expression="%1-&gt;type() == QGradient::RadialGradient">
    <custom-constructor>
    return new QRadialGradient(copy-&gt;center(), copy-&gt;radius(), copy-&gt;focalPoint());
    </custom-constructor>
    <custom-destructor>
    delete copy;
    </custom-destructor>
  </value-type>

  <value-type name="QPainterPath::Element">
    <modify-field name="x" write="false"/>
    <modify-field name="y" write="false"/>
    <modify-field name="type" write="false"/>
    <include file-name="QPainterPath" location="global"/>
    <modify-function signature="operator QPointF()const" access="private"/>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QPainterPath_Element___" quote-before-line="}// class"/>
        </inject-code>

    </value-type>

  <value-type name="QTextEdit::ExtraSelection" delete-in-main-thread="yes">
    <include file-name="QTextEdit" location="global"/>
  </value-type>

  <value-type name="QFont" delete-in-main-thread="yes"> <!-- <expense-cost="1" expense-limit="1000"> -->

    <extra-includes>
        <include file-name="QStringList" location="global"/>
    </extra-includes>
    <modify-function signature="operator=(QFont)" remove="all"/>
    <inject-code>
	<import-file name="typesystem_gui-java.java" quote-after-line="class QFont___" quote-before-line="}// class"/>
    </inject-code>
  </value-type>

  <value-type name="QTextTableCell" delete-in-main-thread="yes">
    <extra-includes>
        <include file-name="QTextCursor" location="global"/>
    </extra-includes>
    <modify-function signature="operator=(QTextTableCell)" remove="all"/>
  </value-type>

  <value-type name="QImage"> <!-- expense-limit="67108864" expense-cost="height()*bytesPerLine()"> -->
    <modify-function signature="QImage(const char *, const char *)">
        <remove/>
    </modify-function>
    <modify-function signature="QImage(const char **)">
        <access modifier="private"/>
    </modify-function>
    <modify-function signature="QImage(const unsigned char*,int,int,int,QImage::Format)">
        <remove/>
    </modify-function>
    <modify-function signature="bits()const">
        <remove/>
    </modify-function>
    <modify-function signature="scanLine(int)const">
        <remove/>
    </modify-function>
    <modify-function signature="QImage(const unsigned char *, int, int, QImage::Format)">
        <remove/>
    </modify-function>

    <extra-includes>
        <include file-name="QStringList" location="global"/>
        <include file-name="QMatrix" location="global"/>
    </extra-includes>
    <modify-function signature="save(const QString &amp;, const char *, int) const">
        <access modifier="private"/>
        <rename to="private_save"/>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="3">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

    <modify-function signature="QImage(unsigned char*,int,int,QImage::Format)">
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="QImage(QString,const char*)">
        <access modifier="private"/>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

    <modify-function signature="load(QString,const char*)">
        <access modifier="private"/>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

    <modify-function signature="load(QIODevice*,const char*)">
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="loadFromData(const unsigned char*,int,const char*)">
        <access modifier="private"/>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="3">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

    <modify-function signature="loadFromData(QByteArray,const char*)">
        <access modifier="private"/>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

    <modify-function signature="operator=(QImage)" remove="all"/>

    <modify-function signature="setText(const char*,const char*,QString)">
        <remove/>
    </modify-function>

    <modify-function signature="text(const char*,const char*)const">
        <remove/>
    </modify-function>

    <modify-function signature="fromData(QByteArray,const char*)">
        <access modifier="private"/>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

    <modify-function signature="fromData(const unsigned char*,int,const char*)">
        <remove/>
    </modify-function>

      <modify-function signature="serialNumber()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="textLanguages()const" remove="all"/> <!--### Obsolete in 4.3-->
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QImage___" quote-before-line="}// class"/>
        </inject-code>
        <inject-code>
            <insert-template name="gui.pixmap_save">
                <replace from="%INPUT_TYPE" to="String"/>
                <replace from="%INPUT_NAME" to="fileName"/>
            </insert-template>
        </inject-code>

        <modify-function signature="save(QIODevice *, const char *, int) const">
            <access modifier="private"/>
            <rename to="private_save"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
            <modify-argument index="3">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>
        <inject-code>
            <insert-template name="gui.pixmap_save">
                <replace from="%INPUT_TYPE" to="qt.core.QIODevice"/>
                <replace from="%INPUT_NAME" to="dev"/>
            </insert-template>
        </inject-code>

        <template name="gui.image_load">
        public final boolean %FUNCTION_NAME(%ARGUMENT_TYPE %ARGUMENT_NAME, String format) {
            return %FUNCTION_NAME(%OUT_ARGUMENT_NAME, format != null ? QNativePointer.createCharPointer(format) : null);
        }

        public final boolean %FUNCTION_NAME(%ARGUMENT_TYPE %ARGUMENT_NAME) {
            return %FUNCTION_NAME(%ARGUMENT_NAME, (String) null);
        }
        </template>
<!--
        <inject-code>
            <insert-template name="gui.image_load">
                <replace from="%FUNCTION_NAME" to="load"/>
                <replace from="%ARGUMENT_TYPE" to="String"/>
                <replace from="%ARGUMENT_NAME" to="fileName"/>
                <replace from="%OUT_ARGUMENT_NAME" to="fileName"/>
            </insert-template>
        </inject-code>

        <inject-code>
            <insert-template name="gui.image_load">
                <replace from="%FUNCTION_NAME" to="load"/>
                <replace from="%ARGUMENT_TYPE" to="qt.core.QIODevice"/>
                <replace from="%ARGUMENT_NAME" to="device"/>
                <replace from="%OUT_ARGUMENT_NAME" to="device"/>
            </insert-template>
        </inject-code>

        <inject-code>
            <insert-template name="gui.image_load">
                <replace from="%FUNCTION_NAME" to="loadFromData"/>
                <replace from="%ARGUMENT_TYPE" to="byte[]"/>
                <replace from="%ARGUMENT_NAME" to="data"/>
                <replace from="%OUT_ARGUMENT_NAME" to="qt.internal.QtJambiInternal.byteArrayToNativePointer(data), data.length"/>
            </insert-template>
        </inject-code>

        <inject-code>
            <insert-template name="gui.image_load">
                <replace from="%FUNCTION_NAME" to="loadFromData"/>
                <replace from="%ARGUMENT_TYPE" to="qt.core.QByteArray"/>
                <replace from="%ARGUMENT_NAME" to="data"/>
                <replace from="%OUT_ARGUMENT_NAME" to="data"/>
            </insert-template>
        </inject-code>

        <inject-code>
            <insert-template name="gui.image_load">
                <replace from="%FUNCTION_NAME" to="fromData"/>
                <replace from="%ARGUMENT_TYPE" to="qt.core.QByteArray"/>
                <replace from="%ARGUMENT_NAME" to="data"/>
                <replace from="%OUT_ARGUMENT_NAME" to="data"/>
                <replace from="boolean" to="QImage"/>
                <replace from="final" to="static"/>
            </insert-template>
        </inject-code>
		-->
    </value-type>

  <value-type name="QColormap" delete-in-main-thread="yes">
    <modify-function signature="operator=(QColormap)" remove="all"/>
    <extra-includes>
        <include file-name="QColor" location="global"/>
    </extra-includes>
    <custom-constructor>
    return new QColormap(*copy);
    </custom-constructor>
    <custom-destructor>
    delete copy;
    </custom-destructor>
  </value-type>

  <value-type name="QCursor" delete-in-main-thread="yes">
     <extra-includes>
        <include file-name="QPixmap" location="global"/>
    </extra-includes>
    <modify-function signature="operator=(QCursor)" remove="all"/>
<!--  
        <template name="gui.cursor_bitmap_getter">
            <insert-template name="gui.getter_returning_nativepointer">
                <replace from="%RETURN_TYPE" to="QBitmap"/>
            </insert-template>
        </template>

        <modify-function signature="bitmap()const">
            <access modifier="private"/>
            <rename to="bitmap_private"/>
        </modify-function>
        <inject-code>
            <insert-template name="gui.cursor_bitmap_getter">
                <replace from="%FUNCTION_NAME" to="bitmap"/>
            </insert-template>
        </inject-code>

        <modify-function signature="mask()const">
            <access modifier="private"/>
            <rename to="mask_private"/>
        </modify-function>
        <inject-code>
            <insert-template name="gui.cursor_bitmap_getter">
                <replace from="%FUNCTION_NAME" to="mask"/>
            </insert-template>
        </inject-code>
		-->
    </value-type>

  <value-type name="QFontDatabase" delete-in-main-thread="yes">
      <extra-includes>
        <include file-name="QStringList" location="global"/>
    </extra-includes>
  </value-type>

  <value-type name="QPen">
      <extra-includes>
        <include file-name="QBrush" location="global"/>
    </extra-includes>

    <modify-function signature="operator=(QPen)" remove="all"/>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QPen___" quote-before-line="}// class"/>
        </inject-code>
    </value-type>

  <value-type name="QBrush">
    <modify-function signature="QBrush(Qt::GlobalColor, Qt::BrushStyle)" remove="all"/>
    <modify-function signature="operator=(const QBrush &amp;)" remove="all"/>
	<!-- restore later - abstract class not handled-->
	<modify-function signature="gradient() const" remove="all"/>
    
	<extra-includes>
        <include file-name="QPixmap" location="global"/>
    </extra-includes>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QBrush___" quote-before-line="}// class"/>
        </inject-code>


        <modify-function signature="gradient()const">
            <!-- Use custom constructors already defined for gradient -->
            <modify-argument index="0">
                <replace-type modified-type="qt.gui.QGradient"/>
                <conversion-rule class="native">
                    jobject %out = qtjambi_from_object(__jni_env, %in, "QGradient", "com/trolltech/qt/gui/", "Lcom_trolltech_qt_gui_QGradient_2", true);
                </conversion-rule>
            </modify-argument>
        </modify-function>
    </value-type>

  <value-type name="QColor">
    <modify-function signature="QColor(QColor::Spec)" remove="all"/>
    <modify-function signature="operator=(QColor)" remove="all"/>
    <modify-function signature="operator=(Qt::GlobalColor)" remove="all"/>

    <modify-function signature="QColor(const char*)">
        <remove/>
    </modify-function>

    <modify-function signature="getCmyk(int*,int*,int*,int*,int*)">
        <remove/>
    </modify-function>

    <modify-function signature="getCmykF(double*,double*,double*,double*,double*)">
        <remove/>
    </modify-function>

    <modify-function signature="getHsv(int*,int*,int*,int*)const">
        <remove/>
    </modify-function>

    <modify-function signature="getHsvF(double*,double*,double*,double*)const">
        <remove/>
    </modify-function>

    <modify-function signature="getRgb(int*,int*,int*,int*)const">
        <remove/>
    </modify-function>

    <modify-function signature="getRgbF(double*,double*,double*,double*)const">
        <remove/>
    </modify-function>

      <modify-function signature="dark(int)const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="light(int)const" remove="all"/> <!--### Obsolete in 4.3-->
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QColor___" quote-before-line="}// class"/>
        </inject-code>
    </value-type>

  <value-type name="QFontMetricsF" delete-in-main-thread="yes"> <!-- expense-cost="1" expense-limit="1000"> -->
<!--    <custom-constructor>
        return new QFontMetricsF(*copy);
    </custom-constructor>
    <custom-destructor>
        delete copy;
    </custom-destructor>
    -->
    <modify-function signature="operator!=(const QFontMetricsF &amp;)">
        <remove/>
    </modify-function>
    <modify-function signature="operator==(const QFontMetricsF &amp;)">
        <remove/>
    </modify-function>

    <modify-function signature="boundingRect(QRectF,int,QString,int,int*)const">
        <access modifier="private"/>
        <modify-argument index="4">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="5">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

    <modify-function signature="operator=(QFontMetrics)" remove="all"/>
    <modify-function signature="operator=(QFontMetricsF)" remove="all"/>

    <modify-function signature="size(int,QString,int,int*)const">
        <access modifier="private"/>
        <modify-argument index="3">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="4">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>
   
        <template name="gui.fontmetricsf_boundingrect">
            <insert-template name="gui.fontmetrics_tabarray_function">
                <replace from="%RETURN_TYPE" to="qt.core.QRectF"/>
                <replace from="%FUNCTION_NAME" to="boundingRect"/>
                <replace from="%RECT_ARGUMENTS" to="%RECT_ARGUMENTS, "/>
                <replace from="%RECT_CALL_ARGUMENTS" to="%RECT_CALL_ARGUMENTS, "/>
            </insert-template>
        </template>

        <inject-code>
            <insert-template name="gui.fontmetricsf_boundingrect">
                <replace from="%RECT_ARGUMENTS" to="qt.core.QRectF rect"/>
                <replace from="%RECT_CALL_ARGUMENTS" to="rect"/>
            </insert-template>
        </inject-code>

        <inject-code>
            <insert-template name="gui.fontmetrics_tabarray_function">
                <replace from="%RETURN_TYPE" to="qt.core.QSizeF"/>
                <replace from="%FUNCTION_NAME" to="size"/>
                <replace from="%RECT_ARGUMENTS" to=""/>
                <replace from="%RECT_CALL_ARGUMENTS" to=""/>
            </insert-template>
        </inject-code>
    </value-type>
   <value-type name="QTextOption::Tab"/>

  <value-type name="QFontMetrics" delete-in-main-thread="yes"> <!-- <expense-cost="1" expense-limit="1000">
    <custom-constructor>
        return new QFontMetrics(*copy);
    </custom-constructor>
    <custom-destructor>
        delete copy;
    </custom-destructor>-->
    <modify-function signature="operator!=(const QFontMetrics &amp;)">
        <remove/>
    </modify-function>
    <modify-function signature="operator==(const QFontMetrics &amp;)">
        <remove/>
    </modify-function>

    <modify-function signature="boundingRect(int,int,int,int,int,QString,int,int*)const">
        <access modifier="private"/>
        <modify-argument index="7">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="8">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

    <modify-function signature="boundingRect(QRect,int,QString,int,int*)const">
        <access modifier="private"/>
        <modify-argument index="4">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="5">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

    <modify-function signature="operator=(QFontMetrics)" remove="all"/>

    <modify-function signature="size(int,QString,int,int*)const">
        <access modifier="private"/>
        <modify-argument index="3">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="4">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

 <!-- 
        <template name="gui.fontmetrics_tabarray_function">
        public final %RETURN_TYPE %FUNCTION_NAME(%RECT_ARGUMENTSint flags, String text, int tabStops, int tabArray[]) {
            QNativePointer np = tabArray == null ? null : new QNativePointer(QNativePointer.Type.Int, tabArray.length + 1);
            if (np != null) {
                for (int i=0; i&lt;tabArray.length; ++i) np.setIntAt(i, tabArray[i]);
                np.setIntAt(tabArray.length, 0);
            }
            return %FUNCTION_NAME(%RECT_CALL_ARGUMENTSflags, text, tabStops, np);
        }

        public final %RETURN_TYPE %FUNCTION_NAME(%RECT_ARGUMENTSint flags, String text, int tabStops) {
            return %FUNCTION_NAME(%RECT_CALL_ARGUMENTSflags, text, tabStops, (int []) null);
        }

        public final %RETURN_TYPE %FUNCTION_NAME(%RECT_ARGUMENTSint flags, String text) {
            return %FUNCTION_NAME(%RECT_CALL_ARGUMENTSflags, text, 0);
        }
        </template>

        <template name="gui.fontmetrics_boundingrect">
            <insert-template name="gui.fontmetrics_tabarray_function">
                <replace from="%RETURN_TYPE" to="qt.core.QRect"/>
                <replace from="%FUNCTION_NAME" to="boundingRect"/>
                <replace from="%RECT_ARGUMENTS" to="%RECT_ARGUMENTS, "/>
                <replace from="%RECT_CALL_ARGUMENTS" to="%RECT_CALL_ARGUMENTS, "/>
            </insert-template>
        </template>

        <inject-code>
            <insert-template name="gui.fontmetrics_boundingrect">
                <replace from="%RECT_ARGUMENTS" to="int x, int y, int width, int height"/>
                <replace from="%RECT_CALL_ARGUMENTS" to="x, y, width, height"/>
            </insert-template>
        </inject-code>

        <inject-code>
            <insert-template name="gui.fontmetrics_boundingrect">
                <replace from="%RECT_ARGUMENTS" to="qt.core.QRect rect"/>
                <replace from="%RECT_CALL_ARGUMENTS" to="rect"/>
            </insert-template>
        </inject-code>

        <inject-code>
            <insert-template name="gui.fontmetrics_tabarray_function">
                <replace from="%RETURN_TYPE" to="qt.core.QSize"/>
                <replace from="%FUNCTION_NAME" to="size"/>
                <replace from="%RECT_ARGUMENTS" to=""/>
                <replace from="%RECT_CALL_ARGUMENTS" to=""/>
            </insert-template>
        </inject-code>-->
    </value-type>

  <value-type name="QGradient" force-abstract="yes" polymorphic-base="yes" polymorphic-id-expression="%1-&gt;type() == QGradient::NoGradient">
    <custom-constructor>
    Q_UNUSED(copy)
    qWarning("Copying empty QGradient object");
    return new QGradient();
    </custom-constructor>
    <custom-destructor>
    delete copy;
    </custom-destructor>
    <modify-function signature="operator==(const QGradient &amp;)">
        <remove/>
    </modify-function>
  </value-type>

  <value-type name="QLinearGradient" polymorphic-id-expression="%1-&gt;type() == QGradient::LinearGradient">
    <custom-constructor>
    QLinearGradient *lg = new QLinearGradient(copy-&gt;start(), copy-&gt;finalStop());
    lg-&gt;setSpread(copy-&gt;spread());
    lg-&gt;setStops(copy-&gt;stops());
    return (void *) lg;
    </custom-constructor>
    <custom-destructor>
    delete copy;
    </custom-destructor>
  </value-type>

  <value-type name="QPrinterInfo">
    <modify-function signature="operator=(const QPrinterInfo &amp;)" remove="all"/>
  </value-type>

  <interface-type name="QLayoutItem">
    <modify-field name="align">
      <rename to="align_"/>
    </modify-field>
  </interface-type>
  <interface-type name="QPaintDevice">
	
	<modify-function signature="paintEngine () const">
		<store-result/>
	</modify-function>
	
  </interface-type>
  
  <interface-type name="QGraphicsItem" delete-in-main-thread="yes">
	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
	
    <modify-function signature="matrix()const" remove="all"/>
    <modify-function signature="resetMatrix()" remove="all"/>
    <modify-function signature="sceneMatrix()const" remove="all"/>
    <modify-function signature="setMatrix(QMatrix, bool)" remove="all"/>

    <modify-function signature="children()const" remove="all"/>
  <!--
    <modify-function signature="setMatrix(QMatrix, bool)" remove="all"/>

    <modify-function signature="paint(QPainter*,const QStyleOptionGraphicsItem*,QWidget*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="collidesWithItem(const QGraphicsItem*,Qt::ItemSelectionMode)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

    <modify-function signature="contextMenuEvent(QGraphicsSceneContextMenuEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dragEnterEvent(QGraphicsSceneDragDropEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dragLeaveEvent(QGraphicsSceneDragDropEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dragMoveEvent(QGraphicsSceneDragDropEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dropEvent(QGraphicsSceneDragDropEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="focusInEvent(QFocusEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="focusOutEvent(QFocusEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="hoverEnterEvent(QGraphicsSceneHoverEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="hoverLeaveEvent(QGraphicsSceneHoverEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="hoverMoveEvent(QGraphicsSceneHoverEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="inputMethodEvent(QInputMethodEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="isObscuredBy(const QGraphicsItem*)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="keyPressEvent(QKeyEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="keyReleaseEvent(QKeyEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mouseDoubleClickEvent(QGraphicsSceneMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mouseMoveEvent(QGraphicsSceneMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mousePressEvent(QGraphicsSceneMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mouseReleaseEvent(QGraphicsSceneMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="sceneEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="sceneEventFilter(QGraphicsItem*,QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
        <modify-argument index="2" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="wheelEvent(QGraphicsSceneWheelEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

    <modify-function signature="children()const" remove="all"/>
    <modify-function signature="installSceneEventFilter(QGraphicsItem *)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeSceneEventFilter(QGraphicsItem *)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  

        <modify-function signature="QGraphicsItem(QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
            if (%1 != null)
                disableGarbageCollection();
            </inject-code>
        </modify-function>

        <modify-function signature="paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *)">
            <modify-argument index="2">
                <conversion-rule class="shell">
                    jobject %out = qtjambi_from_object(__jni_env, %in, "QStyleOptionGraphicsItem", "com/trolltech/qt/gui/", "Lcom_trolltech_qt_gui_QStyleOption_2", true);
                </conversion-rule>
                <conversion-rule class="native">
                    const QStyleOptionGraphicsItem *%out = (QStyleOptionGraphicsItem *) qtjambi_to_object(__jni_env, %in);
                </conversion-rule>
                <replace-type modified-type="qt.gui.QStyleOptionGraphicsItem"/>
            </modify-argument>
        </modify-function>

        <modify-function signature="setGroup(QGraphicsItemGroup*)">
            <modify-argument index="1">
                <reference-count action="ignore"/>
            </modify-argument>
            <inject-code position="beginning">
                qt.gui.QGraphicsItemGroup oldGroup = group();
            </inject-code>
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
            if (%1 == null &amp;&amp; oldGroup != null &amp;&amp; oldGroup.parentItem() == null)
                reenableGarbageCollection();
            else
                disableGarbageCollection();
            </inject-code>
        </modify-function>

        <modify-function signature="setParentItem(QGraphicsItem*)">
            <modify-argument index="1">
                <reference-count action="ignore"/>
            </modify-argument>
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
            if (%1 == null)
                reenableGarbageCollection();
            else
                disableGarbageCollection();
            </inject-code>
        </modify-function> -->
    </interface-type>

  <object-type name="QAbstractGraphicsShapeItem" delete-in-main-thread="yes">
  	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
  <!--
    <modify-function signature="QAbstractGraphicsShapeItem(QGraphicsItem*,QGraphicsScene*)">
        <inject-code position="end">
            <argument-map index="1" meta-name="%1"/>
            if (%1 != null) disableGarbageCollection();
        </inject-code>
    </modify-function>
   -->
    <modify-function signature="matrix()const" remove="all"/>
    <modify-function signature="resetMatrix()" remove="all"/>
    <modify-function signature="sceneMatrix()const" remove="all"/>
    <modify-function signature="setMatrix(QMatrix, bool)" remove="all"/>
    <!--
        <modify-function signature="QAbstractGraphicsShapeItem(QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
            if (%1 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
    -->
    </object-type>

  <object-type name="QAbstractItemView">
<!--     <extra-includes>
        <include file-name="tango.util.container.HashMap" location="java"/>
    </extra-includes>-->
      <modify-function signature="update()" remove="all"/>
      <modify-function signature="horizontalStepsPerItem()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setHorizontalStepsPerItem(int)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setVerticalStepsPerItem(int)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="verticalStepsPerItem()const" remove="all"/> <!--### Obsolete in 4.3-->

      <modify-function signature="edit(QModelIndex,QAbstractItemView::EditTrigger,QEvent*)">
        <modify-argument index="3" invalidate-after-use="yes"/>
      </modify-function>
      <modify-function signature="selectionCommand(QModelIndex,const QEvent*)const">
        <modify-argument index="2" invalidate-after-use="yes"/>
      </modify-function>

<!--      <modify-function signature="QAbstractItemView(QWidget*)">
        <inject-code class="java" position="end">
    __rcDelegatesForColumns = new HashMap!(int, QAbstractItemDelegate);
    __rcDelegatesForRows = new HashMap!(int, QAbstractItemDelegate);
        </inject-code>
      </modify-function>
 --> 
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QAbstractItemView___" quote-before-line="}// class"/>
        </inject-code>


        <modify-function signature="setIndexWidget(const QModelIndex &amp;,QWidget *)">
            <modify-argument index="2">
                <!-- Safe to ignore because view reparents widget -->
                <reference-count action="ignore"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="setItemDelegate(QAbstractItemDelegate *)">
            <modify-argument index="1">
                <reference-count action="set" variable-name="__rcItemDelegate"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="setModel(QAbstractItemModel *)">
            <modify-argument index="1">
                <reference-count action="set" variable-name="__rcItemModel"/>
            </modify-argument>
            <inject-code class="java" position="end">
                // setModel() creates a new selection model for the object
                __rcItemSelectionModel = null;
            </inject-code>
        </modify-function>
        <modify-function signature="setSelectionModel(QItemSelectionModel *)">
            <modify-argument index="1">
                <no-null-pointer/>
                <reference-count action="set" variable-name="__rcItemSelectionModel"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="setItemDelegateForColumn(int,QAbstractItemDelegate*)">
            <modify-argument index="2">
                <reference-count action="ignore"/>
            </modify-argument>
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                <argument-map index="2" meta-name="%2"/>
                if (%2 is null)
                    __rcDelegatesForColumns.remove(%1);
                else
                    __rcDelegatesForColumns[%1] = %2;
            </inject-code>
        </modify-function>
        <modify-function signature="setItemDelegateForRow(int,QAbstractItemDelegate*)">
            <modify-argument index="2">
                <reference-count action="ignore"/>
            </modify-argument>
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                <argument-map index="2" meta-name="%2"/>
                if (%2 is null)
                    __rcDelegatesForRows.remove(%1);
                else
                    __rcDelegatesForRows[%1] = %2;
            </inject-code>
        </modify-function>
    </object-type>

  <object-type name="QAbstractPageSetupDialog"/>
  <object-type name="QAbstractPrintDialog"/>
  <object-type name="QAbstractSlider"/>
  <object-type name="QAbstractTextDocumentLayout">
    <modify-function signature="setPaintDevice(QPaintDevice*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcPaintDevice"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="draw(QPainter*,QAbstractTextDocumentLayout::PaintContext)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawInlineObject(QPainter*,QRectF,QTextInlineObject,int,QTextFormat)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

  </object-type>
  <object-type name="QAccessible">
    <modify-function signature="initialize()" remove="all"/>
    <modify-function signature="cleanup()" remove="all"/>
    <modify-function signature="setRootObject(QObject *)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="queryAccessibleInterface(QObject *)">
        <modify-argument index="return">
            <define-ownership class="java" owner="java"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QAccessibleBridge">
    <modify-function signature="setRootObject(QAccessibleInterface *)">
        <modify-argument index="1">
            <define-ownership class="shell" owner="java"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="notifyAccessibilityUpdate(int,QAccessibleInterface*,int)">
        <modify-argument invalidate-after-use="yes" index="2"/>
    </modify-function>
  </object-type>
  <object-type name="QAccessible2Interface"/>
<!--  <object-type name="QAccessibleTableInterface">
    <modify-function signature="qAccessibleTableCastHelper()" remove="all"/>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QAccessibleTableInterface___" quote-before-line="}// class"/>
        </inject-code>


        <modify-function signature="cellAtIndex(int,int*,int*,int*,int*,bool*)">
        <modify-argument index="2">
            <remove-argument/>
            <conversion-rule class="native">
                int rowHolder;
                int *%out = &amp;rowHolder;
            </conversion-rule>
            <conversion-rule class="shell">
                // nothing
            </conversion-rule>
        </modify-argument>
        <modify-argument index="3">
            <remove-argument/>
            <conversion-rule class="native">
                int columnHolder;
                int *%out = &amp;columnHolder;
            </conversion-rule>
            <conversion-rule class="shell">
                // nothing
            </conversion-rule>
        </modify-argument>
        <modify-argument index="4">
            <remove-argument/>
            <conversion-rule class="native">
                int rowSpanHolder;
                int *%out = &amp;rowSpanHolder;
            </conversion-rule>
            <conversion-rule class="shell">
                // nothing
            </conversion-rule>
        </modify-argument>
        <modify-argument index="5">
            <remove-argument/>
            <conversion-rule class="native">
                int columnSpanHolder;
                int *%out = &amp;columnSpanHolder;
            </conversion-rule>
            <conversion-rule class="shell">
                // nothing
            </conversion-rule>
        </modify-argument>
        <modify-argument index="6">
            <remove-argument/>
            <conversion-rule class="native">
                bool isSelectedHolder = false;
                bool *%out = &amp;isSelectedHolder;
            </conversion-rule>
            <conversion-rule class="shell">
                // no conversion
            </conversion-rule>
        </modify-argument>
        <modify-argument index="return">
            <replace-type modified-type="qt.gui.QAccessibleTableInterface$CellAtIndex"/>
            <conversion-rule class="native">
                jobject %out = qtjambi_to_cellatindex(__jni_env, rowHolder, columnHolder, rowSpanHolder, columnSpanHolder, isSelectedHolder);
            </conversion-rule>
            <conversion-rule class="shell">
                qtjambi_from_cellatindex(__jni_env, %in, %2, %3, %4, %5, %6);
            </conversion-rule>
        </modify-argument>
        </modify-function>

        <modify-function signature="selectedColumns(int,QList&lt;int&gt;*)">
        <modify-argument index="2">
            <replace-type modified-type="java.util.List&lt;Integer&gt;"/>
            <conversion-rule class="shell">
                StaticCache *sc = StaticCache::instance();
                sc-&gt;resolveArrayList();
                sc-&gt;resolveCollection();
                sc-&gt;resolveInteger();

                jobject columnsHolder = 0;
                if (%in != 0) {
                    columnsHolder = __jni_env-&gt;NewObject(sc-&gt;ArrayList.class_ref, sc-&gt;ArrayList.constructor, %in-&gt;size());
                    qtjambi_exception_check(__jni_env);
                    if (columnsHolder != 0) for (int i=0; i&lt;%in-&gt;size(); i++) {
                        __jni_env-&gt;CallVoidMethod(columnsHolder, sc-&gt;Collection.add, qtjambi_from_int(__jni_env, %in-&gt;at(i)));
                    }
                    qtjambi_exception_check(__jni_env);
                }
                jobject %out = columnsHolder;
            </conversion-rule>
            <conversion-rule class="native">
                StaticCache *sc = StaticCache::instance();
                sc-&gt;resolveCollection();

                QList&lt;int&gt; columnHolder;
                if (%in != 0) {
                    jobjectArray columnsAsArray = (jobjectArray) __jni_env-&gt;CallObjectMethod(%in, sc-&gt;Collection.toArray);
                    if (columnsAsArray != 0) {
                        int len = __jni_env-&gt;GetArrayLength(columnsAsArray);
                        for (int i=0; i&lt;len; ++i) {
                            columnHolder.append(qtjambi_to_int(__jni_env, __jni_env-&gt;GetObjectArrayElement(columnsAsArray, i)));
                        }
                    }
                    qtjambi_exception_check(__jni_env);
                }
                QList&lt;int&gt; *%out = &amp;columnHolder;
            </conversion-rule>
        </modify-argument>
        <modify-argument index="return">
            <conversion-rule class="shell">
                // Copy back
                if (columnsHolder != 0) {
                    jobjectArray columnsAsArray = (jobjectArray) __jni_env-&gt;CallObjectMethod(columnsHolder, sc-&gt;Collection.toArray);
                    if (columnsAsArray != 0) {
                        int len = __jni_env-&gt;GetArrayLength(columnsAsArray);
                        %2-&gt;clear();
                        for (int i=0; i&lt;len; ++i) {
                            %2-&gt;append(qtjambi_to_int(__jni_env, __jni_env-&gt;GetObjectArrayElement(columnsAsArray, i)));
                        }
                    }
                }

                int %out = %in;
            </conversion-rule>
            <conversion-rule class="native">
                // Copy back
                if (%2 != 0) {
                    __jni_env-&gt;CallVoidMethod(%2, sc-&gt;Collection.clear);
                    for (int i=0; i&lt;columnHolder.size(); ++i) {
                        __jni_env-&gt;CallVoidMethod(%2, sc-&gt;Collection.add, qtjambi_from_int(__jni_env, columnHolder.at(i)));
                    }
                    qtjambi_exception_check(__jni_env);
                }

                jint %out = %in;
            </conversion-rule>
        </modify-argument>
    </modify-function>
    <modify-function signature="selectedRows(int,QList&lt;int&gt;*)">
        <modify-argument index="2">
            <replace-type modified-type="java.util.List&lt;Integer&gt;"/>
            <conversion-rule class="shell">
                StaticCache *sc = StaticCache::instance();
                sc-&gt;resolveArrayList();
                sc-&gt;resolveCollection();
                sc-&gt;resolveInteger();

                jobject rowsHolder = 0;
                if (%in != 0) {
                    rowsHolder = __jni_env-&gt;NewObject(sc-&gt;ArrayList.class_ref, sc-&gt;ArrayList.constructor, %in-&gt;size());
                    qtjambi_exception_check(__jni_env);
                    if (rowsHolder != 0) for (int i=0; i&lt;%in-&gt;size(); i++) {
                        __jni_env-&gt;CallVoidMethod(rowsHolder, sc-&gt;Collection.add, qtjambi_from_int(__jni_env, %in-&gt;at(i)));
                    }
                    qtjambi_exception_check(__jni_env);
                }
                jobject %out = rowsHolder;
            </conversion-rule>
            <conversion-rule class="native">
                StaticCache *sc = StaticCache::instance();
                sc-&gt;resolveCollection();

                QList&lt;int&gt; rowsHolder;
                if (%in != 0) {
                    jobjectArray rowsAsArray = (jobjectArray) __jni_env-&gt;CallObjectMethod(%in, sc-&gt;Collection.toArray);
                    if (rowsAsArray != 0) {
                        int len = __jni_env-&gt;GetArrayLength(rowsAsArray);
                        for (int i=0; i&lt;len; ++i) {
                            rowsHolder.append(qtjambi_to_int(__jni_env, __jni_env-&gt;GetObjectArrayElement(rowsAsArray, i)));
                        }
                    }
                    qtjambi_exception_check(__jni_env);
                }
                QList&lt;int&gt; *%out = &amp;rowsHolder;
            </conversion-rule>
        </modify-argument>
        <modify-argument index="return">
            <conversion-rule class="shell">
                // Copy back
                if (rowsHolder != 0) {
                    jobjectArray rowsAsArray = (jobjectArray) __jni_env-&gt;CallObjectMethod(rowsHolder, sc-&gt;Collection.toArray);
                    if (rowsAsArray != 0) {
                        int len = __jni_env-&gt;GetArrayLength(rowsAsArray);
                        %2-&gt;clear();
                        for (int i=0; i&lt;len; ++i) {
                            %2-&gt;append(qtjambi_to_int(__jni_env, __jni_env-&gt;GetObjectArrayElement(rowsAsArray, i)));
                        }
                    }
                }

                int %out = %in;
            </conversion-rule>
            <conversion-rule class="native">
                // Copy back
                if (%2 != 0) {
                    __jni_env-&gt;CallVoidMethod(%2, sc-&gt;Collection.clear);
                    for (int i=0; i&lt;rowsHolder.size(); ++i) {
                        __jni_env-&gt;CallVoidMethod(%2, sc-&gt;Collection.add, qtjambi_from_int(__jni_env, rowsHolder.at(i)));
                    }
                    qtjambi_exception_check(__jni_env);
                }

                jint %out = %in;
            </conversion-rule>
        </modify-argument>
        </modify-function>

    </object-type>         -->

  <object-type name="QAccessibleInterface">
    <modify-function signature="indexOfChild(const QAccessibleInterface*)const">
        <modify-argument invalidate-after-use="yes" index="1"/>
    </modify-function>
    <modify-function signature="relationTo(int,const QAccessibleInterface*,int)const">
        <modify-argument invalidate-after-use="yes" index="2"/>
    </modify-function>
    
<!--    <modify-function signature="navigate(QAccessible::RelationFlag,int,QAccessibleInterface**)const" remove="all"/> --><!-- TODO -->

<!--  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QAccessibleInterface___" quote-before-line="}// class"/>
        </inject-code>


        <template name="gui.accessible_interface_to_target">
        jclass __target_class = resolveClass(__jni_env, "QAccessibleInterface$Target", "com/trolltech/qt/gui/");
        QTJAMBI_EXCEPTION_CHECK(__jni_env);
        Q_ASSERT(__target_class);

        jmethodID __target_constructor = resolveMethod(__jni_env, "&lt;init&gt;", "(ILcom/trolltech/qt/gui/QAccessibleInterface;)V", "QAccessibleInterface$Target", "com/trolltech/qt/gui/");
        QTJAMBI_EXCEPTION_CHECK(__jni_env);
        Q_ASSERT(__target_constructor);

        jobject __java_interface = %TARGET != 0 ? qtjambi_from_object(__jni_env, %TARGET, "QAccessibleInterface$ConcreteWrapper", "com/trolltech/qt/gui/", true) : 0;

        jobject %OUTPUT = __jni_env-&gt;NewObject(__target_class, __target_constructor, %CHILD_INDEX, __java_interface);
        </template>

        <modify-function signature="navigate(QAccessible::RelationFlag,int,QAccessibleInterface**)const">
            <modify-argument index="3">
                <remove-argument/>
                <conversion-rule class="shell">
                    // nothing
                </conversion-rule>
                <conversion-rule class="native">
                    QAccessibleInterface *__qt_interface = 0;
                    QAccessibleInterface **%out = &amp;__qt_interface;
                </conversion-rule>
            </modify-argument>

            <modify-argument index="0">
                <replace-type modified-type="qt.gui.QAccessibleInterface$Target"/>
                <conversion-rule class="native">
                    <insert-template name="gui.accessible_interface_to_target">
                        <replace from="%TARGET" to="__qt_interface"/>
                        <replace from="%CHILD_INDEX" to="%in"/>
                        <replace from="%OUTPUT" to="%out"/>
                    </insert-template>
                </conversion-rule>
                <conversion-rule class="shell">
                    jfieldID __childIndex_id = resolveField(__jni_env, "childIndex", "I", "QAccessibleInterface$Target", "com/trolltech/qt/gui/");
                    Q_ASSERT(__childIndex_id);

                    jfieldID __target_id = resolveField(__jni_env, "target", "Lcom/trolltech/qt/gui/QAccessibleInterface;", "QAccessibleInterface$Target", "com/trolltech/qt/gui/");
                    Q_ASSERT(__target_id);

                    jint %out = __jni_env-&gt;GetIntField(%in, __childIndex_id);

                    jobject __java_interface = __jni_env-&gt;GetObjectField(%in, __target_id);
                    QtJambiLink *__qt_link = __java_interface != 0 ? QtJambiLink::findLink(__jni_env, __java_interface) : 0;
                    if (__qt_link != 0) __qt_link-&gt;disableGarbageCollection(__jni_env, __java_interface);
                    QAccessibleInterface *__qt_interface = __qt_link != 0 ? (QAccessibleInterface *) __qt_link-&gt;pointer() : 0;

                    if (%3 != 0) *%3 = __qt_interface;
                </conversion-rule>
            </modify-argument>
        </modify-function>
        -->
    </object-type>
  <object-type name="QAccessibleInterfaceEx"/>
  <object-type name="QAccessibleObject"/>
  <object-type name="QAccessibleObjectEx"/>
  <object-type name="QAccessibleWidget"/>
  <object-type name="QAccessibleWidgetEx"/>
  <object-type name="QActionGroup">
        <modify-function signature="addAction(QAction*)">
            <modify-argument index="1">
                <reference-count action="add" variable-name="__rcActions"/>
            </modify-argument>
<!--            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                qt.GeneratorUtilities.setField(%1, QAction.class, "__rcActionGroup", this);
            </inject-code> -->
        </modify-function>
        <modify-function signature="removeAction(QAction*)">
            <modify-argument index="1">
                <reference-count action="remove" variable-name="__rcActions"/>
            </modify-argument>
<!--            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                qt.GeneratorUtilities.setField(%1, QAction.class, "__rcActionGroup", null);
            </inject-code> -->
        </modify-function>
    </object-type>
  <object-type name="QCDEStyle">
      <modify-function signature="standardIconImplementation(QStyle::StandardPixmap, const QStyleOption *, const QWidget *)const" virtual-slot="yes"/>
  </object-type>
  <object-type name="QCheckBox">
<!--    <modify-function signature="initStyleOption(QStyleOptionButton*)const">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionButton"/>
            </insert-template>
        </inject-code> -->
    </object-type>
  <object-type name="QCleanlooksStyle">
    <modify-function signature="standardPixmap(QStyle::StandardPixmap,const QStyleOption*,const QWidget*)const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="standardIconImplementation(QStyle::StandardPixmap, const QStyleOption *, const QWidget *)const" virtual-slot="yes"/>
  </object-type>
  <object-type name="QCommonStyle">
      <modify-function signature="standardPixmap(QStyle::StandardPixmap, const QStyleOption*,const QWidget*)const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="standardIconImplementation(QStyle::StandardPixmap, const QStyleOption *, const QWidget *)const" virtual-slot="yes"/>
  </object-type>
  <object-type name="QDataWidgetMapper">
    <modify-function signature="addMapping(QWidget*,int)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcMappings"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addMapping(QWidget*,int,QByteArray)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcMappings"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeMapping(QWidget*)">
        <modify-argument index="1">
            <reference-count action="remove" variable-name="__rcMappings"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItemDelegate(QAbstractItemDelegate*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcItemDelegate"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setModel(QAbstractItemModel*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcModel"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QDateEdit"/>
  <object-type name="QDesktopServices">
<!--          <extra-includes>
            <include file-name="qt.gui.UrlHandler" location="java"/>
        </extra-includes>-->
    <modify-function signature="setUrlHandler(const QString &amp;, QObject *, const char *)" access="private">
        <modify-argument index="2">
            <reference-count action="ignore"/> <!-- Handled in injected code -->
        </modify-argument>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QDesktopServices___" quote-before-line="}// class"/>
        </inject-code>

    </object-type>
  <object-type name="QDialog">
<!--     <modify-function signature="setVisible(bool)" remove="all"/> // properties_d -->

    <modify-function signature="setExtension(QWidget*)" remove="all"/>
    <modify-function signature="exec()" access="non-final"/>
    <modify-function signature="open()" virtual-slot="yes" />
    <modify-function signature="extension()const" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="orientation()const" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="setOrientation(Qt::Orientation)" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="showExtension(bool)" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>
  <object-type name="QDialogButtonBox">
    <modify-function signature="addButton(QAbstractButton*,QDialogButtonBox::ButtonRole)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeButton(QAbstractButton*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QDirModel">
    <modify-function signature="parent()const" remove="java"/>
    <modify-function signature="setIconProvider(QFileIconProvider*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcIconProvider"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QDoubleValidator"/>
  <object-type name="QFileIconProvider"/>
  <object-type name="QWizard">
    <!-- ### Requires correct class name in meta object -->
    <modify-function signature="setDefaultProperty(const char *, const char *, const char *)" remove="all"/>
    <modify-function signature="addPage(QWizardPage*)">
        <modify-argument index="1">
            <no-null-pointer/>
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setButton(QWizard::WizardButton,QAbstractButton*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setPage(int,QWizardPage*)">
        <modify-argument index="2">
            <no-null-pointer/>
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

  </object-type>
  <object-type name="QWizardPage">
    <!-- ### Reduced functionality due to meta object having missing information -->
    <modify-function signature="registerField(const QString &amp;, QWidget *, const char *, const char *)">
        <access modifier="private"/>
        <modify-argument index="3">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="4">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QWizardPage___" quote-before-line="}// class"/>
        </inject-code>

    </object-type>
  <object-type name="QFocusFrame">
<!--    <modify-function signature="initStyleOption(QStyleOption*)const">
        <access modifier="private"/>
    </modify-function> -->
    <modify-function signature="setWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcWidget"/>
        </modify-argument>
    </modify-function>
<!--    <inject-code>
        <insert-template name="gui.init_style_option">
            <replace from="%TYPE" to="QStyleOption"/>
        </insert-template>
    </inject-code> -->
  </object-type>
  <object-type name="QFontComboBox"/>
  <object-type name="QFontDialog">
      <modify-function signature="open(QObject *, const char *)" remove="all"/> <!-- # TODO -->

<!--        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QFontDialog___" quote-before-line="}// class"/>
        </inject-code>

        <template name="gui.fontdialog_get_font_general">
            public static Result getFont(%FONT_ARGUMENT %COMMA QWidget parent %STRING_ARGUMENT) {
                QNativePointer np = new QNativePointer(QNativePointer.Type.Boolean);
                QFont returned = getFont(np, %FONT_CALL_ARGUMENT %COMMA parent %STRING_CALL_ARGUMENT);
                return new Result(returned, np.booleanValue());
            }
        </template>

        <template name="gui.fontdialog_get_font_nocaption">
            <insert-template name="gui.fontdialog_get_font_general">
                <replace from="%STRING_ARGUMENT" to=""/>
                <replace from="%STRING_CALL_ARGUMENT" to=""/>
            </insert-template>

            public static Result getFont(%FONT_ARGUMENT) {
                return getFont(%FONT_CALL_ARGUMENT %COMMA (QWidget) null);
            }
        </template>

        <modify-function signature="getFont(bool*,QFont,QWidget*,QString)">
            <access modifier="private"/>
        </modify-function>
        <inject-code>
            <insert-template name="gui.fontdialog_get_font_general">
                <replace from="%FONT_ARGUMENT %COMMA" to="QFont initial,"/>
                <replace from="%STRING_ARGUMENT" to=", String caption"/>
                <replace from="%FONT_CALL_ARGUMENT %COMMA" to="initial,"/>
                <replace from="%STRING_CALL_ARGUMENT" to=", caption"/>
            </insert-template>
        </inject-code>

        <modify-function signature="getFont(bool*,QWidget*)">
            <access modifier="private"/>
            <modify-argument index="2">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>
        <inject-code>
            <insert-template name="gui.fontdialog_get_font_nocaption">
                <replace from="%FONT_ARGUMENT" to=""/>
                <replace from="%COMMA" to=""/>
                <replace from="%FONT_CALL_ARGUMENT" to=""/>
            </insert-template>
        </inject-code>

        <modify-function signature="getFont(bool*,QFont,QWidget*)">
            <access modifier="private"/>
            <modify-argument index="3">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>
        <inject-code>
            <insert-template name="gui.fontdialog_get_font_nocaption">
                <replace from="%FONT_ARGUMENT" to="QFont initial"/>
                <replace from="%COMMA" to=", "/>
                <replace from="%FONT_CALL_ARGUMENT" to="initial"/>
            </insert-template>
        </inject-code>
        -->
    </object-type>
  <object-type name="QGraphicsEllipseItem" delete-in-main-thread="yes">
  	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
  <!--
        <modify-function signature="QGraphicsEllipseItem(QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                if (%1 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="QGraphicsEllipseItem(const QRectF &amp;,QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="2" meta-name="%2"/>
                if (%2 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="QGraphicsEllipseItem(double,double,double,double,QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="5" meta-name="%5"/>
                if (%5 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>-->
    </object-type>
  <object-type name="QGraphicsItemAnimation">
    <modify-function signature="setItem(QGraphicsItem*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcItem"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setTimeLine(QTimeLine*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcTimeLine"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QGraphicsItemGroup" delete-in-main-thread="yes">
      <modify-function signature="matrix()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="resetMatrix()" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="sceneMatrix()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setMatrix(QMatrix, bool)" remove="all"/> <!--### Obsolete in 4.3-->
  <!--
        <modify-function signature="QGraphicsItemGroup(QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                if (%1 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="addToGroup(QGraphicsItem*)">
            <modify-argument index="1">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="removeFromGroup(QGraphicsItem*)">
            <modify-argument index="1">
                <reference-count action="ignore"/>
            </modify-argument>
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                if (parentItem() == null)
                %1.reenableGarbageCollection();
            </inject-code>
        </modify-function>
    -->
    </object-type>
  <object-type name="QGraphicsLineItem" delete-in-main-thread="yes">
      <modify-function signature="matrix()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="resetMatrix()" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="sceneMatrix()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setMatrix(QMatrix, bool)" remove="all"/> <!--### Obsolete in 4.3-->
      	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
    <!--
        <modify-function signature="QGraphicsLineItem(QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                if (%1 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="QGraphicsLineItem(const QLineF &amp;,QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="2" meta-name="%2"/>
                if (%2 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="QGraphicsLineItem(double,double,double,double,QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="5" meta-name="%5"/>
                if (%5 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
    -->
    </object-type>
  <object-type name="QGraphicsPathItem" delete-in-main-thread="yes">
  	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
  <!--
        <modify-function signature="QGraphicsPathItem(QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                if (%1 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="QGraphicsPathItem(const QPainterPath &amp;,QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="2" meta-name="%2"/>
                if (%2 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
    -->
    </object-type>

  <object-type name="QGraphicsPixmapItem" delete-in-main-thread="yes">
      <modify-function signature="matrix()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="resetMatrix()" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="sceneMatrix()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setMatrix(QMatrix, bool)" remove="all"/> <!--### Obsolete in 4.3-->
      	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
    <!--
        <modify-function signature="QGraphicsPixmapItem(QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                if (%1 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="QGraphicsPixmapItem(const QPixmap &amp;,QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="2" meta-name="%2"/>
                if (%2 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
    -->
    </object-type>
  <object-type name="QGraphicsPolygonItem" delete-in-main-thread="yes">
  	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
    <!--
        <modify-function signature="QGraphicsPolygonItem(QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                if (%1 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="QGraphicsPolygonItem(const QPolygonF &amp;,QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="2" meta-name="%2"/>
                if (%2 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
    -->
    </object-type>
  <object-type name="QGraphicsRectItem" delete-in-main-thread="yes">
  	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
  <!--
        <modify-function signature="QGraphicsRectItem(QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                if (%1 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="QGraphicsRectItem(double,double,double,double,QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="5" meta-name="%5"/>
                if (%5 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="QGraphicsRectItem(const QRectF &amp;,QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="2" meta-name="%2"/>
                if (%2 != null) disableGarbageCollection();
            </inject-code>
        </modify-function> -->
    </object-type>
  <object-type name="QGraphicsSimpleTextItem" delete-in-main-thread="yes">
  	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
    <!--
        <modify-function signature="QGraphicsSimpleTextItem(QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                if (%1 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
        <modify-function signature="QGraphicsSimpleTextItem(const QString &amp;,QGraphicsItem*,QGraphicsScene*)">
            <inject-code position="end">
                <argument-map index="2" meta-name="%2"/>
                if (%2 != null) disableGarbageCollection();
            </inject-code>
        </modify-function>
    -->
    </object-type>
  <object-type name="QHBoxLayout"/>
  <object-type name="QHeaderView">
<!--    <modify-function signature="initStyleOption(QStyleOptionHeader*)const">
        <access modifier="private"/>
    </modify-function>
-->
    <modify-function signature="paintSection(QPainter*,QRect,int)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
<!--
    <inject-code>
        <insert-template name="gui.init_style_option">
            <replace from="%TYPE" to="QStyleOptionHeader"/>
        </insert-template>
    </inject-code>-->
    <modify-function signature="setModel(QAbstractItemModel*)">
        <modify-argument index="1">
            <reference-count declare-variable="QAbstractItemView" action="set" variable-name="__rcItemModel"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QIconEngine">
    <modify-function signature="paint(QPainter*,QRect,QIcon::Mode,QIcon::State)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
  </object-type>
  <object-type name="QIconEngineV2">
        <extra-includes>
            <include file-name="qt.core.QSize" location="java"/>
        </extra-includes>
    <modify-function signature="read(QDataStream&amp;)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="write(QDataStream&amp;)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

    <modify-function signature="virtual_hook(int,void*)" remove="all"/>

    <modify-function signature="clone()const">
        <remove class="java"/>
<!--        <modify-argument index="return">
            <define-ownership class="shell" owner="c++"/>
        </modify-argument>-->
    </modify-function>
	
    <inject-code>
        <import-file name="typesystem_gui-java.java" quote-after-line="class QIconEngineV2___" quote-before-line="}// class"/>
    </inject-code>
  </object-type>
  <object-type name="QImageWriter">
  <modify-function signature="setDevice(QIODevice*)">
    <modify-argument index="1">
        <reference-count action="set" variable-name="__rcDevice"/>
    </modify-argument>
  </modify-function>
      <modify-function signature="description()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setDescription(QString)" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>
  <object-type name="QInputContextFactory"/>
  <object-type name="QIntValidator"/>
  <object-type name="QItemDelegate">
    <modify-function signature="doLayout(QStyleOptionViewItem,QRect*,QRect*,QRect*,bool)const">
        <remove/>
    </modify-function>

    <modify-function signature="drawCheck(QPainter*,QStyleOptionViewItem,QRect,Qt::CheckState)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawDecoration(QPainter*,QStyleOptionViewItem,QRect,QPixmap)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawDisplay(QPainter*,QStyleOptionViewItem,QRect,QString)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawFocus(QPainter*,QStyleOptionViewItem,QRect)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>


    <modify-function signature="selected(QPixmap,QPalette,bool)const">
        <remove/>
    </modify-function>
    <modify-function signature="setItemEditorFactory(QItemEditorFactory*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcItemEditorFactory"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setEditorData(QWidget*,QModelIndex)const">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setModelData(QWidget*,QAbstractItemModel*,QModelIndex)const">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

  </object-type>
  <object-type name="QItemEditorCreatorBase"/>
  <object-type name="QItemEditorFactory">
    <modify-function signature="registerEditor(QVariant::Type, QItemEditorCreatorBase *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setDefaultFactory(QItemEditorFactory *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDefaultItemEditorFactory"/>
        </modify-argument>
    </modify-function>
  
        <modify-function signature="setDefaultFactory(QItemEditorFactory*)">
            <modify-argument index="1">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
    </object-type>
  <object-type name="QItemSelectionModel"/>
  <object-type name="QTreeModel"/>
  <object-type name="QListView"/>
  <object-type name="QColumnView">
    <modify-function signature="setPreviewWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setModel(QAbstractItemModel*)">
        <modify-argument index="1">
            <reference-count declare-variable="QAbstractItemView" action="set" variable-name="__rcItemModel"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setSelectionModel(QItemSelectionModel*)">
        <modify-argument index="1">
            <no-null-pointer/>
            <reference-count declare-variable="QAbstractItemView" action="set" variable-name="__rcItemSelectionModel"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QMainWindow">
    <modify-function signature="addDockWidget(Qt::DockWidgetArea,QDockWidget*,Qt::Orientation)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addDockWidget(Qt::DockWidgetArea,QDockWidget*)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addToolBar(QToolBar*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addToolBar(Qt::ToolBarArea,QToolBar*)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertToolBar(QToolBar*,QToolBar*)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertToolBarBreak(QToolBar*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeDockWidget(QDockWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeToolBar(QToolBar*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeToolBarBreak(QToolBar*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCentralWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setMenuBar(QMenuBar*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setMenuWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setStatusBar(QStatusBar*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

  </object-type>
  <object-type name="QMdiArea">
    <modify-function signature="addSubWindow(QWidget*,QFlags&lt;Qt::WindowType&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="removeSubWindow(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="setActiveSubWindow(QMdiSubWindow*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="setupViewport(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

  </object-type>
  <object-type name="QMdiSubWindow">
    <modify-function signature="setSystemMenu(QMenu*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QMenu">
    <modify-function signature="addAction(QAction *)" remove="all"/>
    <modify-function signature="addMenu(QMenu*)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcMenus"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addMenu(const QString &amp;)">
        <modify-argument index="0">
            <reference-count action="add" variable-name="__rcMenus"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addMenu(const QIcon &amp;, const QString &amp;)">
        <modify-argument index="0">
            <reference-count action="add" variable-name="__rcMenus"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertMenu(QAction*,QMenu*)">
        <modify-argument index="2">
            <reference-count action="add" variable-name="__rcMenus"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertSeparator(QAction*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setActiveAction(QAction*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setDefaultAction(QAction*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setNoReplayFor(QWidget*)">
        <remove/>
    </modify-function>
    <modify-function signature="initStyleOption(QStyleOptionMenuItem*,const QAction*)const">
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="addAction(QString,const QObject*,const char*,QKeySequence)">
        <remove/>
    </modify-function>

    <modify-function signature="addAction(QIcon,QString,const QObject*,const char*,QKeySequence)">
        <remove/>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QMenu___" quote-before-line="}// class"/>
        </inject-code>

<!--
        <template name="gui.addAction">
        public final QAction addAction(%EXTRA String text, Object receiver, String method %END_EXTRA) {
            QAction returned = addAction(%CALL_EXTRA text %END_CALL_EXTRA);
            %POST_CALL
            returned.triggered.connect(receiver, method);

            return returned;
        }

        public final QAction addAction(%EXTRA String text, qt.QSignalEmitter.AbstractSignal signal %END_EXTRA) {
            QAction returned = addAction(%CALL_EXTRA text %END_CALL_EXTRA);
            %POST_CALL
            returned.triggered.connect(signal);
            return returned;
        }
        </template>

        <template name="gui.addAction_with_shortcut">
            <insert-template name="gui.addAction">
                <replace from="%POST_CALL" to="returned.setShortcut(shortcut);"/>
                <replace from=" %END_EXTRA" to=", QKeySequence shortcut"/>
                <replace from=" %END_CALL_EXTRA" to=""/>
            </insert-template>

        public final QAction addAction(%EXTRA String text, Object receiver, String method) {
            return addAction(%CALL_EXTRA text, receiver, method, new QKeySequence(0));
        }

        public final QAction addAction(%EXTRA String text, qt.QSignalEmitter.AbstractSignal signal) {
            return addAction(%CALL_EXTRA text, signal, new QKeySequence(0));
        }
        </template>

        <inject-code>
            <insert-template name="gui.addAction_with_shortcut">
                <replace from="%EXTRA " to=""/>
                <replace from="%CALL_EXTRA " to=""/>
            </insert-template>
        </inject-code>

        <inject-code>
            <insert-template name="gui.addAction_with_shortcut">
                <replace from="%EXTRA" to="QIcon icon,"/>
                <replace from="%CALL_EXTRA" to="icon,"/>
            </insert-template>
        </inject-code>-->
    </object-type>

  <object-type name="QMenuBar">
    <modify-function signature="addAction(QAction *)" remove="all"/>
    <modify-function signature="addAction(QString,const QObject*,const char*)">
        <remove/>
    </modify-function>

    <modify-function signature="addMenu(QMenu*)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcMenus"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertMenu(QAction*,QMenu*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="2">
            <reference-count action="add" variable-name="__rcMenus"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertSeparator(QAction*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setActiveAction(QAction*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCornerWidget(QWidget*,Qt::Corner)    ">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QMenuBar___" quote-before-line="}// class"/>
        </inject-code>
        <inject-code>
            <insert-template name="gui.addAction">
                <replace from="%POST_CALL" to=""/>
                <replace from=" %END_EXTRA" to=""/>
                <replace from=" %END_CALL_EXTRA" to=""/>
                <replace from="%EXTRA " to=""/>
                <replace from="%CALL_EXTRA " to=""/>
            </insert-template>
        </inject-code>


    </object-type>
  <object-type name="QMotifStyle">
    <modify-function signature="standardPixmap(QStyle::StandardPixmap, const QStyleOption*, const QWidget*)const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="standardIconImplementation(QStyle::StandardPixmap, const QStyleOption *, const QWidget *)const" virtual-slot="yes"/>
  </object-type>
  <object-type name="QPainterPathStroker"/>

  <object-type name="QPictureIO">
      <modify-function signature="QPictureIO(QIODevice*,const char*)">
        <access modifier="private"/>
         <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDevice"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="setIODevice(QIODevice*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDevice"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="QPictureIO(QString,const char*)">
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="format()const">
        <access modifier="private"/>
        <rename to="format_private"/>
    </modify-function>

    <modify-function signature="parameters()const">
        <access modifier="private"/>
        <rename to="parameters_private"/>
    </modify-function>

    <modify-function signature="setFormat(const char*)">
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="setParameters(const char*)">
        <access modifier="private"/>
    </modify-function>

  
        <inject-code>

        public this(QIODevice ioDevice, string format) {
            this(ioDevice, toStringz(format));
        }
        
        public this(string fileName, string format) {
            this(fileName, toStringz(format));
        }

            <insert-template name="core.return_string_instead_of_char*">
                <replace from="%FUNCTION_NAME" to="format"/>
            </insert-template>
            <insert-template name="core.return_string_instead_of_char*">
                <replace from="%FUNCTION_NAME" to="parameters"/>
            </insert-template>
            <insert-template name="core.call_with_string_instead_of_char*">
                <replace from="%FUNCTION_NAME" to="setFormat"/>
                <replace from="%ARG_NAME" to="format"/>
            </insert-template>
            <insert-template name="core.call_with_string_instead_of_char*">
                <replace from="%FUNCTION_NAME" to="setParameters"/>
                <replace from="%ARG_NAME" to="parameters"/>
            </insert-template>
        </inject-code>
    </object-type>

  <object-type name="QPixmapCache">
    <modify-function signature="find(QString)">
        <remove/>
    </modify-function>
<!--
    <modify-function signature="find(QString,QPixmap&amp;)">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QPixmapCache___" quote-before-line="}// class"/>
        </inject-code>
-->
    </object-type>
  <object-type name="QPlastiqueStyle">
    <modify-function signature="standardPixmap(QStyle::StandardPixmap, const QStyleOption*, const QWidget*)const" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="standardIconImplementation(QStyle::StandardPixmap, const QStyleOption *, const QWidget *)const" virtual-slot="yes"/>
    <modify-function signature="layoutSpacingImplementation(QSizePolicy::ControlType, QSizePolicy::ControlType, Qt::Orientation, const QStyleOption *, const QWidget *) const" virtual-slot="yes"/>
  </object-type>
  <object-type name="QPrintDialog">
      <modify-function signature="accepted(QPrinter *)">
          <rename to="accepted_printer"/>
      </modify-function>
      <modify-function signature="accepted()" remove="all"/>
      <modify-function signature="open(QObject *, const char *)" remove="all"/> <!-- # TODO -->

  </object-type>
  <object-type name="QPrintEngine"/>
  <object-type name="QProgressBar">
<!--    <modify-function signature="initStyleOption(QStyleOptionProgressBar*)const">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionProgressBar"/>
            </insert-template>
        </inject-code> -->
    </object-type>
  <object-type name="QPushButton">
<!--    <modify-function signature="initStyleOption(QStyleOptionButton*)const">
        <access modifier="private"/>
    </modify-function>
-->
<!--     <modify-function signature="setDefault(bool)" rename="default_"/> // properties_d -->


    <modify-function signature="setMenu(QMenu*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcMenu"/>
        </modify-argument>
    </modify-function>
  <!--
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionButton"/>
            </insert-template>
        </inject-code> -->
    </object-type>
  <object-type name="QRegExpValidator"/>
  <object-type name="QScrollArea">
    <modify-function signature="setWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QSessionManager"/>
  <object-type name="QShortcut">
    <modify-function signature="QShortcut(QKeySequence,QWidget*,const char*,const char*,Qt::ShortcutContext)">
        <access modifier="private"/>
        <modify-argument index="3">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="4">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="5">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QShortcut___" quote-before-line="}// class"/>
        </inject-code>

    </object-type>
  <object-type name="QSizeGrip"/>
  <object-type name="QSound"/>
  <object-type name="QSpacerItem">
  </object-type>
  <object-type name="QStandardItem">
    <modify-function signature="operator=(QStandardItem)" remove="all"/>
    <modify-function signature="operator&lt;(QStandardItem)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="read(QDataStream&amp;)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="write(QDataStream&amp;)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

  
        <modify-function signature="appendColumn(const QList&lt;QStandardItem *&gt; &amp;)">
            <modify-argument index="1">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="appendRow(const QList&lt;QStandardItem *&gt; &amp;)">
            <modify-argument index="1">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="appendRow(QStandardItem *)">
            <modify-argument index="1">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="insertColumn(int, const QList&lt;QStandardItem *&gt; &amp;)">
            <modify-argument index="2">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="insertRow(int, const QList&lt;QStandardItem *&gt; &amp;)">
            <modify-argument index="2">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="insertRow(int, QStandardItem *)">
            <modify-argument index="2">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="setChild(int,int,QStandardItem *)">
            <modify-argument index="3">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="setChild(int,QStandardItem *)">
            <modify-argument index="2">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="takeChild(int,int)">
            <modify-argument index="return">
                <define-ownership class="java" owner="default"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="takeColumn(int)">
            <modify-argument index="return">
                <define-ownership class="java" owner="default"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="takeRow(int)">
            <modify-argument index="return">
                <define-ownership class="java" owner="default"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="clone()const">
            <modify-argument index="return">
                <define-ownership class="shell" owner="c++"/>
            </modify-argument>
        </modify-function>
    </object-type>
  <object-type name="QStatusBar">
    <modify-function signature="addPermanentWidget(QWidget *, int)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addWidget(QWidget *, int)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeWidget(QWidget *)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertPermanentWidget(int, QWidget *, int)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertWidget(int, QWidget *, int)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QStringListModel"/>
  <object-type name="QStyleFactory"/>
  <object-type name="QStyleHintReturn">
        <modify-field name="version">
          <rename to="version_"/>
      </modify-field>
  </object-type>
  <object-type name="QStyleHintReturnVariant"/>
  <object-type name="QStyleHintReturnMask"/>
  <object-type name="QStylePainter" delete-in-main-thread="yes"/>
  <object-type name="QSyntaxHighlighter">
    <modify-function signature="setCurrentBlockUserData(QTextBlockUserData*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setDocument(QTextDocument*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDocument"/>
        </modify-argument>
    </modify-function>

  </object-type>
  <object-type name="QSystemTrayIcon">
    <modify-function signature="setContextMenu(QMenu*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcContextMenu"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QTableView">
    <modify-function signature="setHorizontalHeader(QHeaderView*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setVerticalHeader(QHeaderView*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setModel(QAbstractItemModel*)">
        <modify-argument index="1">
            <reference-count declare-variable="QAbstractItemView" action="set" variable-name="__rcItemModel"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setSelectionModel(QItemSelectionModel*)">
        <modify-argument index="1">
            <no-null-pointer/>
            <reference-count declare-variable="QAbstractItemView" action="set" variable-name="__rcItemSelectionModel"/>
        </modify-argument>
    </modify-function>

      <modify-function signature="sortByColumn(int)" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>
  <object-type name="QTextBlockGroup" delete-in-main-thread="yes"/>
  <object-type name="QTextBlockUserData" delete-in-main-thread="yes"/>
  <object-type name="QTextItem" delete-in-main-thread="yes"/>
  <object-type name="QTextList" delete-in-main-thread="yes">
    <modify-function signature="format()const" rename="textListFormat"/>

      <modify-function signature="isEmpty()const" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>
  <object-type name="QTextObject" delete-in-main-thread="yes"/>
  <object-type name="QTextObjectInterface" delete-in-main-thread="yes">
    <modify-function signature="drawObject(QPainter*,QRectF,QTextDocument*,int,QTextFormat)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
  </object-type>
  <object-type name="QTimeEdit"/>
  <object-type name="QToolBox">
    <modify-function signature="addItem(QWidget*,QString)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addItem(QWidget*,QIcon,QString)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertItem(int,QWidget*,QIcon,QString)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertItem(int,QWidget*,QString)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentWidget(QWidget*)  ">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QToolButton">
<!--    <modify-function signature="initStyleOption(QStyleOptionToolButton*)const">
        <access modifier="private"/>
    </modify-function>
-->
    <modify-function signature="setDefaultAction(QAction *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDefaultAction"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setMenu(QMenu *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcMenu"/>
        </modify-argument>
    </modify-function>
  <!--
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionToolButton"/>
            </insert-template>
        </inject-code> -->
    </object-type>
  <object-type name="QToolTip"/>
  <object-type name="QTreeView">

    <modify-function signature="drawBranches(QPainter*,QRect,QModelIndex)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawRow(QPainter*,QStyleOptionViewItem,QModelIndex)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

    <modify-function signature="setHeader(QHeaderView*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
   </modify-function>
   <modify-function signature="setModel(QAbstractItemModel*)">
        <modify-argument index="1">
            <reference-count declare-variable="QAbstractItemView" action="set" variable-name="__rcItemModel"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setSelectionModel(QItemSelectionModel*)">
        <modify-argument index="1">
            <no-null-pointer/>
            <reference-count declare-variable="QAbstractItemView" action="set" variable-name="__rcItemSelectionModel"/>
        </modify-argument>
    </modify-function>

      <modify-function signature="sortByColumn(int)" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>
  <object-type name="QUndoCommand">
    <modify-function signature="mergeWith(const QUndoCommand*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
  </object-type>
  <object-type name="QUndoGroup">
    <modify-function signature="addStack(QUndoStack*)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcStacks"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeStack(QUndoStack*)">
        <modify-argument index="1">
            <reference-count action="remove" variable-name="__rcStacks"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setActiveStack(QUndoStack*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QUndoStack">
        <modify-function signature="push(QUndoCommand *)">
            <modify-argument index="1">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
    </object-type>

  <object-type name="QUndoView">
    <modify-function signature="setGroup(QUndoGroup *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcGroupOrStack"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setStack(QUndoStack *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcGroupOrStack"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="QUndoView(QUndoGroup *,QWidget *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcGroupOrStack"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="QUndoView(QUndoStack *,QWidget *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcGroupOrStack"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QVBoxLayout"/>
  <object-type name="QValidator">
<!--        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QValidator___" quote-before-line="}// class"/>
        </inject-code>


        <modify-function signature="fixup(QString&amp;)const">
            <modify-argument index="1">
                <replace-type modified-type="java.lang.String"/>
                <conversion-rule class="shell">
                    jobject %out = (jobject) qtjambi_from_qstring(__jni_env, %in);
                </conversion-rule>
                <conversion-rule class="native">
                    QString %out = qtjambi_to_qstring(__jni_env, (jstring) %in);
                    QString *__qt_converted = &amp;%out;
                </conversion-rule>
            </modify-argument>

            <modify-argument index="0">
                <replace-type modified-type="java.lang.String"/>
                <conversion-rule class="native">
                    jobject %out = (jobject) qtjambi_from_qstring(__jni_env, *__qt_converted);
                </conversion-rule>
                <conversion-rule class="shell">
                    %1 = qtjambi_to_qstring(__jni_env, (jstring) %in);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="validate(QString&amp;,int&amp;)const">
            <modify-argument index="1">
                <replace-type modified-type="qt.gui.QValidator$QValidationData"/>
                <conversion-rule class="shell">
                    <insert-template name="gui.convert_validationdata_to_java">
                        <replace from="%STRING" to="%1"/>
                        <replace from="%POS" to="%2"/>
                    </insert-template>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui.convert_validationdata_to_string"/>
                </conversion-rule>
            </modify-argument>

            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                    // nothing needed
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui.convert_validationdata_to_pos">
                        <replace from="%VALIDATIONDATA" to="%1"/>
                    </insert-template>
                </conversion-rule>
            </modify-argument>

            <modify-argument index="return">
                <conversion-rule class="native">
                    <insert-template name="gui.cleanup_validationdata_from_java"/>
                    jint %out = %in;
                </conversion-rule>
                <conversion-rule class="shell">
                    <insert-template name="gui.cleanup_validationdata_to_java">
                        <replace from="%STRING" to="%1"/>
                        <replace from="%POS" to="%2"/>
                    </insert-template>
                    QValidator::State %out = (QValidator::State) qtjambi_to_enumerator(__jni_env, %in);
                </conversion-rule>
            </modify-argument>
        </modify-function>
-->
  </object-type>
  <object-type name="QWhatsThis"/>
  <object-type name="QWidgetAction">
    <modify-function signature="createWidget(QWidget*)">
        <modify-argument index="return">
            <define-ownership class="shell" owner="c++"/>
        </modify-argument>
    </modify-function>
  
        <modify-function signature="setDefaultWidget(QWidget*)">
            <modify-argument index="1">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
    </object-type>
  <object-type name="QWidgetItem"/>
  <object-type name="QWindowsStyle">
      <modify-function signature="standardPixmap(QStyle::StandardPixmap, const QStyleOption*, const QWidget*)const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="standardIconImplementation(QStyle::StandardPixmap, const QStyleOption *, const QWidget *)const" virtual-slot="yes"/>
  </object-type>
  <object-type name="QWorkspace">
    <modify-function signature="addWindow(QWidget*,QFlags&lt;Qt::WindowType&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setActiveWindow(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QActionEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::ActionAdded || %1-&gt;type() == QEvent::ActionRemoved || %1-&gt;type() == QEvent::ActionChanged">
        <extra-includes>
            <include file-name="qt.core.QObject" location="java"/>
        </extra-includes>
  </object-type>
  <object-type name="QClipboardEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Clipboard"/>
  <object-type name="QCloseEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Close"/>
  <object-type name="QContextMenuEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::ContextMenu"/>
  <object-type name="QDragEnterEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::DragEnter"/>
  <object-type name="QDragLeaveEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::DragLeave"/>
  <object-type name="QDragMoveEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::DragMove">
    <modify-function signature="accept()" remove="all"/>
    <modify-function signature="ignore()" remove="all"/>
  </object-type>
  <object-type name="QDropEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Drop">
    <modify-function signature="encodedData(const char*)const">
        <remove/>
    </modify-function>

    <modify-function signature="format(int)const">
        <remove/>
    </modify-function>

    <modify-function signature="provides(const char*)const">
        <remove/>
    </modify-function>
    <modify-field name="fmts" read="false" write="false"/> <!-- obsolete in Qt4 -->

  </object-type>
  <object-type name="QFileOpenEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::FileOpen"/>
  <object-type name="QFocusEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::FocusIn || %1-&gt;type() == QEvent::FocusOut">
        <modify-function signature="reason()const">
            <remove/>
        </modify-function>
  </object-type>

  <object-type name="QGraphicsSceneContextMenuEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneContextMenu"/>
  <object-type name="QGraphicsSceneDragDropEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneDragEnter || %1-&gt;type() == QEvent::GraphicsSceneDragLeave || %1-&gt;type() == QEvent::GraphicsSceneDragMove || %1-&gt;type() == QEvent::GraphicsSceneDrop">
    <modify-function signature="setMimeData(const QMimeData *)">
        <remove/>
    </modify-function>
    <modify-function signature="setSource(QWidget *)">
        <remove/>
    </modify-function>
  </object-type>
  <object-type name="QGraphicsSceneEvent">
    <modify-function signature="setWidget(QWidget *)">
        <remove/>
    </modify-function>
  </object-type>
  <object-type name="QGraphicsSceneMoveEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneMove"/>
  <object-type name="QGraphicsSceneResizeEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneResize"/>
  <object-type name="QGraphicsSceneHelpEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneHelp"/>
  <object-type name="QGraphicsSceneHoverEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneHoverEnter || %1-&gt;type() == QEvent::GraphicsSceneHoverLeave || %1-&gt;type() == QEvent::GraphicsSceneHoverMove"/>
  <object-type name="QGraphicsSceneMouseEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneMouseDoubleClick || %1-&gt;type() == QEvent::GraphicsSceneMouseMove || %1-&gt;type() == QEvent::GraphicsSceneMousePress || %1-&gt;type() == QEvent::GraphicsSceneMouseRelease"/>
  <object-type name="QGraphicsSceneWheelEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::GraphicsSceneWheel"/>
  <object-type name="QHelpEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::ToolTip || %1-&gt;type() == QEvent::WhatsThis"/>
  <object-type name="QHideEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Hide"/>
  <object-type name="QHoverEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::HoverEnter || %1-&gt;type() == QEvent::HoverLeave || %1-&gt;type() == QEvent::HoverMove"/>
  <object-type name="QIconDragEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::IconDrag"/>
  <object-type name="QInputMethodEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::InputMethod"/>
  <object-type name="QMoveEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Move"/>
  <object-type name="QResizeEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Resize"/>
  <object-type name="QShortcutEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Shortcut">
        <!-- All these have const overloads that are used instead -->
        <modify-function signature="isAmbiguous()">
            <remove/>
        </modify-function>
        <modify-function signature="shortcutId()">
            <remove/>
        </modify-function>
        <modify-function signature="key()">
            <remove/>
        </modify-function>
  </object-type>
  <object-type name="QShowEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Show"/>
  <object-type name="QStatusTipEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::StatusTip"/>
  <object-type name="QTabletEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::TabletMove || %1-&gt;type() == QEvent::TabletPress || %1-&gt;type() == QEvent::TabletRelease"/>
  <object-type name="QToolBarChangeEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::ToolBarChange"/>
  <object-type name="QWhatsThisClickedEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::WhatsThisClicked"/>
  <object-type name="QWheelEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Wheel"/>
  <object-type name="QWindowStateChangeEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::WindowStateChange"/>
  <object-type name="QDragResponseEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::DragResponse"/>
  <object-type name="QInputEvent">
    <modify-function signature="modifiers()const" access="non-final"/>
  </object-type>
  <object-type name="QKeyEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::KeyPress || %1-&gt;type() == QEvent::KeyRelease">
	<modify-function signature="createExtendedKeyEvent(QEvent::Type,int,QFlags&lt;Qt::KeyboardModifier&gt;,uint,uint,uint,const QString &amp;,bool,unsigned short)" remove="all"/>
  </object-type>
  <object-type name="QMouseEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::MouseButtonDblClick || %1-&gt;type() == QEvent::MouseButtonPress || %1-&gt;type() == QEvent::MouseButtonRelease || %1-&gt;type() == QEvent::MouseMove">
  	<modify-function signature="createExtendedMouseEvent(QEvent::Type, const QPointF &amp;, const QPoint &amp;, Qt::MouseButton, QFlags&lt;Qt::MouseButton&gt;, QFlags&lt;Qt::KeyboardModifier&gt;)" remove="all"/>
  </object-type>
  <object-type name="QPaintEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::Paint"/>
  <object-type name="QAccessibleEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::AccessibilityDescription || %1-&gt;type() == QEvent::AccessibilityHelp"/>

  <object-type name="QAbstractButton">
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QAbstractButton___" quote-before-line="}// class"/>
        </inject-code>

    </object-type>

  <object-type name="QStyle">
      <modify-function signature="standardIconImplementation(QStyle::StandardPixmap, const QStyleOption *, const QWidget *)const" virtual-slot="yes"/>
      <modify-function signature="layoutSpacingImplementation(QSizePolicy::ControlType, QSizePolicy::ControlType, Qt::Orientation, const QStyleOption *, const QWidget *) const" virtual-slot="yes"/>

      <modify-function signature="drawComplexControl(QStyle::ComplexControl,const QStyleOptionComplex*,QPainter*,const QWidget*)const">
        <modify-argument index="3" invalidate-after-use="yes"/>
      </modify-function>
      <modify-function signature="drawControl(QStyle::ControlElement,const QStyleOption*,QPainter*,const QWidget*)const">
        <modify-argument index="3" invalidate-after-use="yes"/>
      </modify-function>
      <modify-function signature="drawPrimitive(QStyle::PrimitiveElement,const QStyleOption*,QPainter*,const QWidget*)const">
        <modify-argument index="3" invalidate-after-use="yes"/>
      </modify-function>
      <modify-function signature="styleHint(QStyle::StyleHint,const QStyleOption*,const QWidget*,QStyleHintReturn*)const">
        <modify-argument index="4" invalidate-after-use="yes"/>
      </modify-function>
      <modify-function signature="drawItemPixmap(QPainter*,QRect,int,QPixmap)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
      </modify-function>
      <modify-function signature="drawItemText(QPainter*,QRect,int,QPalette,bool,QString,QPalette::ColorRole)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
      </modify-function>

  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QStyle___" quote-before-line="}// class"/>
        </inject-code>
		<!--
        <modify-function signature="drawControl(QStyle::ControlElement, const QStyleOption *, QPainter *, const QWidget *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="drawComplexControl(QStyle::ComplexControl, const QStyleOptionComplex *, QPainter *, const QWidget *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOptionComplex"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoptioncomplex_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="drawPrimitive(QStyle::PrimitiveElement, const QStyleOption *, QPainter *, const QWidget *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="hitTestComplexControl(QStyle::ComplexControl, const QStyleOptionComplex *, const QPoint &amp;, const QWidget *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOptionComplex"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoptioncomplex_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="pixelMetric(QStyle::PixelMetric, const QStyleOption *, const QWidget *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="sizeFromContents(QStyle::ContentsType, const QStyleOption *, const QSize &amp;, const QWidget *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="standardIcon(QStyle::StandardPixmap, const QStyleOption *, const QWidget *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="standardPixmap(QStyle::StandardPixmap, const QStyleOption *, const QWidget *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="styleHint(QStyle::StyleHint, const QStyleOption *, const QWidget *, QStyleHintReturn *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="subControlRect(QStyle::ComplexControl, const QStyleOptionComplex *, QStyle::SubControl, const QWidget *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOptionComplex"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoptioncomplex_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    QStyleOptionComplex *%out = (QStyleOptionComplex *) qtjambi_to_object(__jni_env, %in);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="subElementRect(QStyle::SubElement, const QStyleOption *, const QWidget *) const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="generatedIconPixmap(QIcon::Mode,QPixmap,const QStyleOption*)const">
            <modify-argument index="3">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="polish(QPalette&amp;)">
            <modify-argument index="1">
                <replace-type modified-type="qt.gui.QPalette"/>
                <conversion-rule class="shell">
                    jobject %out = qtjambi_from_object(__jni_env, &amp;%in, "QPalette", "com/trolltech/qt/gui/", false);
                    jobject __invalidate_me = %out;
                </conversion-rule>
                <conversion-rule class="native">
                    QtJambiLink *link = QtJambiLink::findLink(__jni_env, %in);
                    Q_ASSERT(link != 0);

                    QPalette dummy;
                    QPalette &amp;%out = link != 0 ? * (QPalette *) link-&gt;pointer() : dummy;
                </conversion-rule>
            </modify-argument>
            <modify-argument index="0">
                <conversion-rule class="shell">
                    if (__invalidate_me != 0)
                    qtjambi_invalidate_object(__jni_env, __invalidate_me);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="standardIconImplementation(QStyle::StandardPixmap,const QStyleOption*,const QWidget*)const">
            <modify-argument index="2">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>
-->
        <modify-function signature="combinedLayoutSpacing(QFlags&lt;QSizePolicy::ControlType&gt;,QFlags&lt;QSizePolicy::ControlType&gt;,Qt::Orientation,QStyleOption*,QWidget*)const">
            <access modifier="private"/>
            <modify-argument index="4">
                <remove-default-expression/>
            </modify-argument>
            <modify-argument index="5">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>


        <modify-function signature="layoutSpacing(QSizePolicy::ControlType,QSizePolicy::ControlType,Qt::Orientation,const QStyleOption*,const QWidget*)const">
            <access modifier="private"/>
            <modify-argument index="4">
                <remove-default-expression/>
            </modify-argument>
            <modify-argument index="5">
                <remove-default-expression/>
            </modify-argument>
        </modify-function>

<!--
        <modify-function signature="layoutSpacingImplementation(QSizePolicy::ControlType,QSizePolicy::ControlType,Qt::Orientation,const QStyleOption*,const QWidget*)const">
            <modify-argument index="4">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    <insert-template name="gui::qstyleoption_from_object"/>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui::qstyleoption_to_object"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>
-->


        <inject-code class="shell-declaration"> <!-- Remove in Qt 5 -->
            QPixmap standardPixmap(QStyle::StandardPixmap, const QStyleOption*, const QWidget*) const { return QPixmap(); }
        </inject-code>

        <modify-function signature="standardPixmap(QStyle::StandardPixmap, const QStyleOption*, const QWidget*)const" remove="all"/> <!--### Obsolete in 4.3-->
    </object-type>

  <object-type name="QColorDialog">
    <modify-function signature="open(QObject *, const char *)" remove="all"/> <!-- # TODO -->

    <modify-function signature="getColor(const QColor &amp;, QWidget *)">
      <modify-argument index="1">
        <replace-default-expression with="QColor.White"/>
      </modify-argument>
    </modify-function>
    <modify-function signature="getRgba(uint,bool*,QWidget*)">
        <remove/>
    </modify-function>
  </object-type>

  <object-type name="QLayout">
  
    <modify-function signature="addItem(QLayoutItem*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

    <modify-function signature="setSpacing(int)" rename="setWidgetSpacing"/>
    <modify-function signature="spacing()const" rename="widgetSpacing"/>
    <modify-function signature="addWidget(QWidget *)">
        <modify-argument index="1">
            <no-null-pointer/>
            <reference-count variable-name="__rcWidgets" action="add"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addChildWidget(QWidget *)">
        <modify-argument index="1">
            <no-null-pointer/>
            <reference-count variable-name="__rcWidgets" action="add"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeWidget(QWidget *)">
        <modify-argument index="1">
            <no-null-pointer/>
            <reference-count variable-name="__rcWidgets" action="remove"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="setAlignment(QWidget*,QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setAlignment(QLayout*,QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setMenuBar(QWidget*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcMenuBar"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="getContentsMargins(int*,int*,int*,int*)const">
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="margin()const" remove="all"/> <!--### Obsolete in 4.3-->
    <!-- <modify-function signature="setMargin(int)" remove="all"/> --> <!--### Obsolete in 4.3-->
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QLayout___" quote-before-line="}// class"/>
        </inject-code>
        <modify-function signature="addItem(QLayoutItem *)">
            <modify-argument index="1">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="removeItem(QLayoutItem *)">
            <modify-argument index="1">
                <define-ownership class="java" owner="default"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="addChildLayout(QLayout *)">
            <modify-argument index="1">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="addChildLayout(QLayout *)">
            <modify-argument index="1">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="itemAt(int) const">
<!--            <modify-argument index="return">
                <define-ownership class="java" owner="c++"/>
            </modify-argument>-->
        </modify-function>


    </object-type>

  <object-type name="QStackedLayout">
    <modify-function signature="addItem(QLayoutItem *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="itemAt(int) const">
        <modify-argument index="return">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addWidget(QWidget *)">
        <rename to="addStackedWidget"/>
        <modify-argument index="1">
            <no-null-pointer/>
            <reference-count action="add" declare-variable="QLayout" variable-name="__rcWidgets"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertWidget(int,QWidget*)">
        <modify-argument index="2">
            <no-null-pointer/>
            <reference-count action="add" declare-variable="QLayout" variable-name="__rcWidgets"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentWidget(QWidget*)">
        <modify-argument index="1">
            <!-- Safe to ignore because current widget must have been added to layout already -->
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QBoxLayout">
    <modify-function signature="addWidget(QWidget *, int, QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addItem(QLayoutItem *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertLayout(int, QLayout *, int)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertItem(int, QLayoutItem *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addSpacerItem(QSpacerItem*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertSpacerItem(int,QSpacerItem*)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="addLayout(QLayout *, int)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addWidget(QWidget*,int,QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <reference-count declare-variable="QLayout" action="add" variable-name="__rcWidgets"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertWidget(int,QWidget*,int,QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="2">
            <reference-count declare-variable="QLayout" action="add" variable-name="__rcWidgets"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setStretchFactor(QWidget*,int)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setStretchFactor(QLayout*,int)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QGridLayout">
    <modify-function signature="addWidget(QWidget *)" remove="all"/>
    <modify-function signature="addItem(QLayoutItem *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addItem(QLayoutItem *, int, int, int, int, QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addLayout(QLayout *, int, int, QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addLayout(QLayout *, int, int, int, int, QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
        <modify-function signature="addWidget(QWidget*,int,int,QFlags&lt;Qt::AlignmentFlag&gt;)">
            <modify-argument index="1">
                <reference-count declare-variable="QLayout" action="add" variable-name="__rcWidgets"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="addWidget(QWidget*,int,int,int,int,QFlags&lt;Qt::AlignmentFlag&gt;)">
            <modify-argument index="1">
                <reference-count declare-variable="QLayout" action="add" variable-name="__rcWidgets"/>
            </modify-argument>
        </modify-function>
        <modify-function signature="addWidget(QWidget*)">
            <modify-argument index="1">
                <reference-count declare-variable="QLayout" action="add" variable-name="__rcWidgets"/>
            </modify-argument>
        </modify-function>
    <modify-function signature="getItemPosition(int,int*,int*,int*,int*)">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QGridLayout___" quote-before-line="}// class"/>
        </inject-code>


    </object-type>

  <object-type name="QGraphicsView">
    <extra-includes>
      <include file-name="QPainterPath" location="global"/>
      <include file-name="QVarLengthArray" location="global"/>
    </extra-includes>
    <modify-function signature="fitInView(const QGraphicsItem *, Qt::AspectRatioMode)">
        <modify-argument index="1">
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setupViewport(QWidget *)" access="non-final"/>
    <modify-function signature="setScene(QGraphicsScene*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcScene"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setupViewport(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="drawBackground(QPainter*,QRectF)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawForeground(QPainter*,QRectF)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawItems(QPainter*,int,QGraphicsItem**,const QStyleOptionGraphicsItem*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

    <modify-function signature="drawItems(QPainter*,int,QGraphicsItem**,const QStyleOptionGraphicsItem*)" remove="all" />

<!--
    <modify-function signature="drawItems(QPainter*,int,QGraphicsItem**,const QStyleOptionGraphicsItem*)">
        <modify-argument index="2">
            <remove-argument/>
            <conversion-rule class="shell">
                // nothing
            </conversion-rule>
            <conversion-rule class="native">
                <insert-template name="core.get_array_length">
                    <replace from="%ARRAY" to="%3"/>
                </insert-template>
                int __length = %out;
            </conversion-rule>
        </modify-argument>

        <modify-argument index="3">
            <replace-type modified-type="qt.gui.QGraphicsItemInterface[]"/>
            <conversion-rule class="shell">
                <insert-template name="gui.convert_graphicsitem_array_to_java">
                    <replace from="%LENGTH" to="%2"/>
                </insert-template>
                jobjectArray graphicsItemArrayHolder = %out;
            </conversion-rule>
            <conversion-rule class="native">
                <insert-template name="gui.convert_graphicsitem_array_from_java"/>
            </conversion-rule>
        </modify-argument>

        <modify-argument index="4">
            <replace-type modified-type="qt.gui.QStyleOptionGraphicsItem[]"/>
            <conversion-rule class="shell">
                <insert-template name="gui.convert_styleoptiongraphicsitem_array_to_java">
                    <replace from="%LENGTH" to="%2"/>
                </insert-template>
                jobjectArray styleOptionArrayHolder = %out;
            </conversion-rule>
            <conversion-rule class="native">
                <insert-template name="gui.convert_styleoptiongraphicsitem_array_from_java"/>
            </conversion-rule>
        </modify-argument>

        <modify-argument index="return">
            <conversion-rule class="shell">
                qtjambi_invalidate_array(__jni_env, styleOptionArrayHolder);
                qtjambi_invalidate_array(__jni_env, graphicsItemArrayHolder);
            </conversion-rule>
        </modify-argument>

    </modify-function>
    -->
  </object-type>

  <object-type name="QInputDialog">
    <modify-function signature="open(QObject *, const char *)" remove="all"/> <!-- # TODO -->

    <modify-function signature="getDouble(QWidget *, const QString &amp;, const QString &amp;, double, double, double, int, bool *, QFlags&lt;Qt::WindowType&gt;)">
        <rename to="getDouble_private"/>
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="getInteger(QWidget *, const QString &amp;, const QString &amp;, int, int, int, int, bool *, QFlags&lt;Qt::WindowType&gt;)">
        <remove/>
    </modify-function>

    <modify-function signature="getInt(QWidget*,QString,QString,int,int,int,int,bool*,QFlags&lt;Qt::WindowType&gt;)">
        <rename to="getInt_private" />
        <access modifier="private" />
    </modify-function>

    <modify-function signature="getItem(QWidget *, const QString &amp;, const QString &amp;, const QStringList&lt;QString&gt; &amp;, int, bool, bool *, QFlags&lt;Qt::WindowType&gt;)">
        <rename to="getItem_private"/>
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="getText(QWidget *, const QString &amp;, const QString &amp;, QLineEdit::EchoMode, const QString &amp;, bool *, QFlags&lt;Qt::WindowType&gt;)">
        <rename to="getText_private"/>
        <access modifier="private"/>
    </modify-function>
    <inject-code>
        <import-file name="typesystem_gui-java.java" quote-after-line="class QInputDialog___" quote-before-line="}// class"/>
    </inject-code>

    </object-type>


  <object-type name="QGraphicsScene">
    <extra-includes>
        <include file-name="QVarLengthArray" location="global"/>
    </extra-includes>
    <modify-function signature="drawItems(QPainter*,int,QGraphicsItem**,const QStyleOptionGraphicsItem*,QWidget*)" remove="all"/> <!-- TODO: What is '_ConcreteWrapper'? -->
    <!--
    <modify-function signature="contextMenuEvent(QGraphicsSceneContextMenuEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dragEnterEvent(QGraphicsSceneDragDropEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dragLeaveEvent(QGraphicsSceneDragDropEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dragMoveEvent(QGraphicsSceneDragDropEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawBackground(QPainter*,QRectF)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawForeground(QPainter*,QRectF)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawItems(QPainter*,int,QGraphicsItem**,const QStyleOptionGraphicsItem*,QWidget*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dropEvent(QGraphicsSceneDragDropEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="focusInEvent(QFocusEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="focusOutEvent(QFocusEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="helpEvent(QGraphicsSceneHelpEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="inputMethodEvent(QInputMethodEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="keyPressEvent(QKeyEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="keyReleaseEvent(QKeyEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mouseDoubleClickEvent(QGraphicsSceneMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mouseMoveEvent(QGraphicsSceneMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mousePressEvent(QGraphicsSceneMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mouseReleaseEvent(QGraphicsSceneMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="wheelEvent(QGraphicsSceneWheelEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

    <modify-function signature="setActiveWindow(QGraphicsWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setStyle(QStyle*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="addItem(QGraphicsItem *)">
      <modify-argument index="1">
        <define-ownership class="java" owner="c++"/>
      </modify-argument>
    </modify-function>
    <modify-function signature="addEllipse(const QRectF &amp;, const QPen &amp;, const QBrush &amp;)">
      <modify-argument index="return">
        <define-ownership class="java" owner="c++"/>
      </modify-argument>
    </modify-function>
    <modify-function signature="addLine(const QLineF &amp;, const QPen &amp;)">
      <modify-argument index="return">
        <define-ownership class="java" owner="c++"/>
      </modify-argument>
    </modify-function>
    <modify-function signature="addPath(const QPainterPath &amp;, const QPen &amp;, const QBrush &amp;)">
      <modify-argument index="return">
        <define-ownership class="java" owner="c++"/>
      </modify-argument>
    </modify-function>
    <modify-function signature="addPixmap(const QPixmap &amp;)">
        <modify-argument index="return">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addPolygon(const QPolygonF &amp;, const QPen &amp;, const QBrush &amp;)">
        <modify-argument index="return">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addRect(const QRectF &amp;, const QPen &amp;, const QBrush &amp;)">
        <modify-argument index="return">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addText(const QString &amp;, const QFont &amp;)">
        <modify-argument index="return">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addWidget(QWidget*,QFlags&lt;Qt::WindowType&gt;)">
        <modify-argument index="return">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeItem(QGraphicsItem*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setFocusItem(QGraphicsItem*,Qt::FocusReason)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcFocusItem"/>
        </modify-argument>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QGraphicsScene___" quote-before-line="}// class"/>
        </inject-code>

        <modify-function signature="addEllipse(const QRectF &amp;, const QPen &amp;, const QBrush &amp;)" remove="all"/>
        <modify-function signature="addEllipse(double, double, double, double, const QPen &amp;, const QBrush &amp;)" remove="all"/>
        <modify-function signature="addLine(const QLineF &amp;, const QPen &amp;)" remove="all"/>
        <modify-function signature="addLine(double, double, double, double, const QPen &amp;)" remove="all"/>
        <modify-function signature="addPath(const QPainterPath &amp;, const QPen &amp;, const QBrush &amp;)" remove="all"/>
        <modify-function signature="addPixmap(const QPixmap &amp;)" remove="all"/>
        <modify-function signature="addPolygon(const QPolygonF &amp;, const QPen &amp;, const QBrush &amp;)" remove="all"/>
        <modify-function signature="addRect(const QRectF &amp;, const QPen &amp;, const QBrush &amp;)" remove="all"/>
        <modify-function signature="addRect(double, double, double, double, const QPen &amp;, const QBrush &amp;)" remove="all"/>
        <modify-function signature="addSimpleText(const QString &amp;, const QFont &amp;)" remove="all"/>
        <modify-function signature="addText(const QString &amp;, const QFont &amp;)" remove="all"/>

        <modify-function signature="drawItems(QPainter*,int,QGraphicsItem**,const QStyleOptionGraphicsItem*,QWidget*)">
            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                    // nothing
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="core.get_array_length">
                        <replace from="%ARRAY" to="%3"/>
                    </insert-template>
                    int __length = %out;
                </conversion-rule>

            </modify-argument>

            <modify-argument index="3">
                <replace-type modified-type="qt.gui.QGraphicsItemInterface[]"/>
                <conversion-rule class="shell">
                    <insert-template name="gui.convert_graphicsitem_array_to_java">
                        <replace from="%LENGTH" to="%2"/>
                    </insert-template>
                    jobjectArray graphicsItemArrayHolder = %out;
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui.convert_graphicsitem_array_from_java"/>
                </conversion-rule>
            </modify-argument>

            <modify-argument index="return">
                <conversion-rule class="shell">
                    qtjambi_invalidate_array(__jni_env, styleOptionArrayHolder);
                    qtjambi_invalidate_array(__jni_env, graphicsItemArrayHolder);
                </conversion-rule>
            </modify-argument>

            <modify-argument index="4">
                <replace-type modified-type="qt.gui.QStyleOptionGraphicsItem[]"/>
                <conversion-rule class="shell">
                    <insert-template name="gui.convert_styleoptiongraphicsitem_array_to_java">
                        <replace from="%LENGTH" to="%2"/>
                    </insert-template>
                    jobjectArray styleOptionArrayHolder = %out;
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui.convert_styleoptiongraphicsitem_array_from_java"/>
                </conversion-rule>
            </modify-argument>
        </modify-function>
	-->
    </object-type>


  <object-type name="QCalendarWidget">
    <extra-includes>
      <include file-name="QTextCharFormat" location="global"/>
    </extra-includes>

      <modify-function signature="isHeaderVisible()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setHeaderVisible(bool)" remove="all"/> <!--### Obsolete in 4.3-->

      <modify-function signature="paintCell(QPainter*,QRect,QDate)const">
        <modify-argument invalidate-after-use="yes" index="1"/>
      </modify-function>
  </object-type>

  <object-type name="QTreeWidget">
    <modify-function signature="mimeData(const QList&lt;QTreeWidgetItem*&gt;)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dropMimeData(QTreeWidgetItem*,int,const QMimeData*,Qt::DropAction)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="isSortingEnabled()const" remove="all"/>
    <modify-function signature="setSortingEnabled(bool)" remove="all"/>
    <modify-function signature="indexOfTopLevelItem(QTreeWidgetItem *)">
        <remove/>
    </modify-function>
    <modify-function signature="addTopLevelItem(QTreeWidgetItem *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeTopLevelItem(int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addTopLevelItems(const QList&lt;QTreeWidgetItem*&gt; &amp;)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertTopLevelItem(int, QTreeWidgetItem *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertTopLevelItems(int, const QList&lt;QTreeWidgetItem*&gt; &amp;)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setHeaderItem(QTreeWidgetItem *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeTopLevelItem(int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeItemWidget(QTreeWidgetItem*,int)">
        <modify-argument index="1">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentItem(QTreeWidgetItem*,int,QFlags&lt;QItemSelectionModel::SelectionFlag&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setFirstItemColumnSpanned(const QTreeWidgetItem*,bool)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentItem(QTreeWidgetItem*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentItem(QTreeWidgetItem*,int)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItemExpanded(const QTreeWidgetItem*,bool)">
        <remove/>
    </modify-function>
    <modify-function signature="isItemExpanded(const QTreeWidgetItem*)const">
        <remove/>
    </modify-function>
    <modify-function signature="setItemHidden(const QTreeWidgetItem*,bool)">
        <remove/>
    </modify-function>
    <modify-function signature="isItemHidden(const QTreeWidgetItem*)const">
        <remove/>
    </modify-function>
    <modify-function signature="isItemSelected(const QTreeWidgetItem*)const">
        <remove/>
    </modify-function>
    <modify-function signature="setItemSelected(const QTreeWidgetItem*,bool)">
        <remove/>
    </modify-function>
    <modify-function signature="setItemWidget(QTreeWidgetItem*,int,QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="3">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setModel(QAbstractItemModel*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

      <modify-function signature="items(const QMimeData*)const" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>

  <object-type name="QAbstractItemDelegate">
    <modify-function signature="setEditorData(QWidget*,QModelIndex)const">
        <modify-argument index="1">
            <!-- Safe to ignore because this implementation is documented to do nothing -->
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setModelData(QWidget*,QAbstractItemModel*,QModelIndex)const">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="paint(QPainter*,QStyleOptionViewItem,QModelIndex)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="editorEvent(QEvent*,QAbstractItemModel*,QStyleOptionViewItem,QModelIndex)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

      <modify-function signature="elidedText(QFontMetrics, int, Qt::TextElideMode, QString)" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>

  <object-type name="QTableWidgetItem" delete-in-main-thread="yes">
    <modify-function signature="operator=(const QTableWidgetItem&amp;)" remove="all"/>
    <modify-function signature="clone() const">
        <modify-argument index="return">
            <define-ownership class="shell" owner="c++"/>
        </modify-argument>
    </modify-function>

      <modify-function signature="backgroundColor()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setBackgroundColor(QColor)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setTextColor(QColor)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="textColor()const" remove="all"/> <!--### Obsolete in 4.3-->

    <modify-function signature="operator&lt;(QTableWidgetItem)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="read(QDataStream&amp;)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="write(QDataStream&amp;)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

  </object-type>

  <object-type name="QListWidgetItem" delete-in-main-thread="yes">

    <modify-function signature="operator&lt;(QListWidgetItem)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="read(QDataStream&amp;)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="write(QDataStream&amp;)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>


    <modify-function signature="operator=(const QListWidgetItem&amp;)" remove="all"/>
<!--    <modify-function signature="QListWidgetItem(QListWidget *, int)">
        <modify-argument index="this">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="QListWidgetItem(const QString &amp;, QListWidget *, int)">
        <modify-argument index="this">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="QListWidgetItem(const QIcon &amp;, const QString &amp;, QListWidget *, int)">
        <modify-argument index="this">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="clone() const">
        <modify-argument index="return">
            <define-ownership class="shell" owner="c++"/>
        </modify-argument>
    </modify-function>
-->
      <modify-function signature="backgroundColor()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setBackgroundColor(QColor)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setTextColor(QColor)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="textColor()const" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>

  <object-type name="QGraphicsTextItem"> <!-- a QObject so main-thread delete redundant -->
    <extra-includes>
      <include file-name="QTextCursor" location="global"/>
    </extra-includes>
    	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
    <!--
    <modify-function signature="QGraphicsTextItem(QGraphicsItem*,QGraphicsScene*)">
        <inject-code position="end">
            <argument-map index="1" meta-name="%1"/>
            if (%1 != null) disableGarbageCollection();
        </inject-code>
    </modify-function>
    <modify-function signature="QGraphicsTextItem(const QString &amp;,QGraphicsItem*,QGraphicsScene*)">
        <inject-code position="end">
            <argument-map index="2" meta-name="%2"/>
            if (%2 != null) disableGarbageCollection();
        </inject-code>
    </modify-function>
    <modify-function signature="setDocument(QTextDocument*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDocument"/>
        </modify-argument>
    </modify-function>
    -->
      <modify-function signature="matrix()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="resetMatrix()" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="sceneMatrix()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setMatrix(QMatrix, bool)" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>

  <object-type name="QCompleter">
    <modify-function signature="activated(const QModelIndex &amp;)">
        <rename to="activatedIndex"/>
    </modify-function>
    <modify-function signature="highlighted(const QModelIndex &amp;)">
        <rename to="highlightedIndex"/>
    </modify-function>
    <modify-function signature="setModel(QAbstractItemModel *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcModel"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setPopup(QAbstractItemView *)">
        <modify-argument index="1">
            <no-null-pointer/>
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setWidget(QWidget *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcWidget"/>
        </modify-argument>
    </modify-function>
  </object-type>


  <object-type name="QTreeWidgetItem" delete-in-main-thread="yes">

    <modify-function signature="operator&lt;(QTreeWidgetItem)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="read(QDataStream&amp;)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="write(QDataStream&amp;)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

    <modify-function signature="QTreeWidgetItem(const QTreeWidgetItem &amp;)" remove="all"/>
    <modify-function signature="operator=(const QTreeWidgetItem&amp;)" remove="all"/>

    <modify-function signature="QTreeWidgetItem(QTreeWidget *,int)">
        <modify-argument index="this">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="QTreeWidgetItem(QTreeWidget *,const QStringList&lt;QString&gt; &amp;,int)">
        <modify-argument index="this">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="QTreeWidgetItem(QTreeWidget *,QTreeWidgetItem *,int)">
        <modify-argument index="this">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="QTreeWidgetItem(QTreeWidgetItem *,int)">
        <modify-argument index="this">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="QTreeWidgetItem(QTreeWidgetItem *,const QStringList&lt;QString&gt; &amp;,int)">
        <modify-argument index="this">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="QTreeWidgetItem(QTreeWidgetItem *,QTreeWidgetItem *,int)">
        <modify-argument index="this">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="clone() const">
        <modify-argument index="return">
            <define-ownership class="shell" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addChild(QTreeWidgetItem *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addChildren(const QList&lt;QTreeWidgetItem*&gt; &amp;)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertChild(int, QTreeWidgetItem *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertChildren(int, const QList&lt;QTreeWidgetItem*&gt; &amp;)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeChild(QTreeWidgetItem*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeChild(int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeChildren()">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>

      <modify-function signature="backgroundColor(int)const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setBackgroundColor(int, QColor)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setTextColor(int, QColor)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="textColor(int)const" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>

  <object-type name="QListWidget">
    <modify-function signature="mimeData(const QList&lt;QListWidgetItem *&gt;)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="addItem(QListWidgetItem *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertItem(int, QListWidgetItem *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeItemWidget(QListWidgetItem*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentItem(QListWidgetItem*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentItem(QListWidgetItem*,QFlags&lt;QItemSelectionModel::SelectionFlag&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItemHidden(const QListWidgetItem*,bool)">
        <remove/>
    </modify-function>
    <modify-function signature="isItemHidden(const QListWidgetItem*)const">
        <remove/>
    </modify-function>
    <modify-function signature="setItemSelected(const QListWidgetItem*,bool)">
        <remove/>
    </modify-function>
    <modify-function signature="isItemSelected(const QListWidgetItem*)const">
        <remove/>
    </modify-function>
    <modify-function signature="takeItem(int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItemWidget(QListWidgetItem*,QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setModel(QAbstractItemModel*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

  
<!--        <modify-function signature="addItem(const QString &amp;)" remove="all"/>-->
        <modify-function signature="addItems(const QStringList&lt;QString&gt; &amp;)" remove="all"/>
        <modify-function signature="insertItem(int, const QString &amp;)" remove="all"/>
        <modify-function signature="insertItems(int, const QStringList&lt;QString&gt; &amp;)" remove="all"/>
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QListWidget___" quote-before-line="}// class"/>
        </inject-code>
    </object-type>

  <object-type name="QWidget">
    <extra-includes>
        <include file-name="QIcon" location="global"/>
        <include file-name="QMessageBox" location="global"/>
    </extra-includes>

<!-- These should be restored later after fixing abstract classes issue -->
<!--<modify-function signature="inputContext()" remove="all"/>
<modify-function signature="layout() const" remove="all"/>
<modify-function signature="setLayout(QLayout*)" remove="all"/>
<modify-function signature="style () const" remove="all"/>-->

    <modify-function signature="actionEvent(QActionEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="changeEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="closeEvent(QCloseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="contextMenuEvent(QContextMenuEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dragEnterEvent(QDragEnterEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dragLeaveEvent(QDragLeaveEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dragMoveEvent(QDragMoveEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="dropEvent(QDropEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="enterEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="focusInEvent(QFocusEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="focusOutEvent(QFocusEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="hideEvent(QHideEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="inputMethodEvent(QInputMethodEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="keyPressEvent(QKeyEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="keyReleaseEvent(QKeyEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="leaveEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mouseDoubleClickEvent(QMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mouseMoveEvent(QMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mousePressEvent(QMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mouseReleaseEvent(QMouseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="moveEvent(QMoveEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="paintEvent(QPaintEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="resizeEvent(QResizeEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="showEvent(QShowEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="tabletEvent(QTabletEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="wheelEvent(QWheelEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
<!-- qtd
    <modify-function signature="render(QPainter*,QPoint,QRegion,QFlags&lt;QWidget::RenderFlag&gt;)">
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>

    <inject-code class="native">
        extern "C" JNIEXPORT void JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_gui_QWidget__1_1qt_1QMessageBox_1setWindowTitle)
        (JNIEnv *__jni_env,
            jclass,
            jlong __this_nativeId,
            jobject title0)
        {
            QTJAMBI_DEBUG_TRACE("(native) entering: QMessageBox::setWindowTitle(const QString &amp; title)");
            QString __qt_title0 =  qtjambi_to_qstring(__jni_env, (jstring) title0);
            QTJAMBI_EXCEPTION_CHECK(__jni_env);
            QMessageBox *__qt_this = (QMessageBox *) qtjambi_from_jlong(__this_nativeId);
            QTJAMBI_EXCEPTION_CHECK(__jni_env);
            Q_ASSERT(__qt_this);
            __qt_this-&gt;setWindowTitle((const QString&amp; )__qt_title0);
            QTJAMBI_DEBUG_TRACE("(native) -&gt; leaving: QMessageBox::setWindowTitle(const QString &amp; title)");
        }
    </inject-code>

    <inject-code class="native">
        extern "C" JNIEXPORT void JNICALL QTJAMBI_FUNCTION_PREFIX(Java_com_trolltech_qt_gui_QWidget__1_1qt_1QMessageBox_1setWindowModality)
        (JNIEnv *__jni_env,
            jclass,
            jlong __this_nativeId,
            jint windowModality0)
        {
            Q_UNUSED(__jni_env);
            QTJAMBI_DEBUG_TRACE("(native) entering: QMessageBox::setWindowModality(Qt::WindowModality modality)");
            Qt::WindowModality __qt_windowModality0 = (Qt::WindowModality) windowModality0;
            QTJAMBI_EXCEPTION_CHECK(__jni_env);
            QMessageBox *__qt_this = (QMessageBox *) qtjambi_from_jlong(__this_nativeId);
            QTJAMBI_EXCEPTION_CHECK(__jni_env);
            Q_ASSERT(__qt_this);
            __qt_this-&gt;setWindowModality((Qt::WindowModality )__qt_windowModality0);
            QTJAMBI_DEBUG_TRACE("(native) -&gt; leaving: QMessageBox::setWindowModality(Qt::WindowModality modality)");
        }
    </inject-code>

    <modify-function signature="render(QPaintDevice *, const QPoint &amp;, const QRegion &amp;, QFlags&lt;QWidget::RenderFlag&gt;)">
        <modify-argument index="4">
            <replace-default-expression with="RenderFlag.DrawWindowBackground, RenderFlag.DrawChildren"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="render(QPainter *, const QPoint &amp;, const QRegion &amp;, QFlags&lt;QWidget::RenderFlag&gt;)">
        <modify-argument index="4">
            <replace-default-expression with="RenderFlag.DrawWindowBackground, RenderFlag.DrawChildren"/>
        </modify-argument>
    </modify-function>
-->	
<!--    <modify-function signature="setFocusProxy(QWidget*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcFocusProxy"/>
        </modify-argument>
    </modify-function> -->
    <modify-function signature="setInputContext(QInputContext*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
	<!--
    <modify-function signature="setLayout(QLayout*)">
        <modify-argument index="1">
            <no-null-pointer/>
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
	-->
    <modify-function signature="setParent(QWidget*,QFlags&lt;Qt::WindowType&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setParent(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
	<!--
    <modify-function signature="setStyle(QStyle*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcStyle"/>
        </modify-argument>
    </modify-function>
	-->
    <modify-function signature="setTabOrder(QWidget*,QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="getContentsMargins(int*,int*,int*,int*)const">
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="addAction(QAction *)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcActions"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="insertAction(QAction *, QAction *)">
        <modify-argument index="2">
            <reference-count action="add" variable-name="__rcActions"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="addActions(const QList&lt;QAction *&gt; &amp;)">
        <modify-argument index="1">
            <reference-count action="add-all" variable-name="__rcActions"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="insertActions(QAction *, const QList&lt;QAction *&gt; &amp;)">
        <modify-argument index="2">
            <reference-count action="add-all" variable-name="__rcActions"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="removeAction(QAction *)">
        <modify-argument index="1">
            <reference-count action="remove" variable-name="__rcActions"/>
        </modify-argument>
    </modify-function>
      <modify-function signature="enabledChange(bool)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="fontChange(QFont)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="isEnabledToTLW()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="isTopLevel()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="paletteChange(QPalette)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setShown(bool)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="topLevelWidget()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="windowActivationChange(bool)" remove="all"/> <!--### Obsolete in 4.3-->
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QWidget___" quote-before-line="}// class"/>
        </inject-code>
<!--
        <modify-function signature="setWindowTitle(const QString &amp;)">
            <inject-code class="java">
                <argument-map index="1" meta-name="%1"/>
            if (this instanceof QMessageBox) {
                qt.GeneratorUtilities.threadCheck(this);
                if (nativeId() == 0)
                    throw new QNoNativeResourcesException("Function call on incomplete object of type: " +getClass().getName());
                __qt_QMessageBox_setWindowTitle(nativeId(), %1);
                return ;
            }
            </inject-code>
        </modify-function>


        <modify-function signature="setWindowModality(Qt::WindowModality)">
            <inject-code class="java">
                <argument-map index="1" meta-name="%1"/>
            if (this instanceof QMessageBox) {
                qt.GeneratorUtilities.threadCheck(this);
                if (nativeId() == 0)
                    throw new QNoNativeResourcesException("Function call on incomplete object of type: " +getClass().getName());
                __qt_QMessageBox_setWindowModality(__nativeId(), %1.value());
                return ;
            }
            </inject-code>
        </modify-function>
-->



    </object-type>

  <object-type name="QMessageBox">
    <modify-function signature="open()" remove="all"/>
    <modify-function signature="setWindowTitle(const QString &amp;)" remove="all"/>
    <modify-function signature="setWindowModality(Qt::WindowModality)" remove="all"/>
    <extra-includes>
        <include file-name="QPixmap" location="global"/>
    </extra-includes>
    <modify-function signature="addButton(QAbstractButton*,QMessageBox::ButtonRole)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeButton(QAbstractButton*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setDefaultButton(QPushButton*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setEscapeButton(QAbstractButton*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

      <modify-function signature="QMessageBox(QString,QString,QMessageBox::Icon,int,int,int,QWidget*,QFlags&lt;Qt::WindowType&gt;)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="buttonText(int)const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setButtonText(int, QString)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="standardIcon(QMessageBox::Icon)" remove="all"/> <!--### Obsolete in 4.3-->

      <modify-function signature="critical(QWidget*,QString,QString,int,int,int)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="critical(QWidget*,QString,QString,QString,QString,QString,int,int)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="information(QWidget*,QString,QString,int,int,int)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="information(QWidget*,QString,QString,QString,QString,QString,int,int)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="question(QWidget*, QString, QString, int, int, int)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="question(QWidget*, QString, QString, QString, QString, QString, int, int)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="warning(QWidget*, QString, QString, int, int, int)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="warning(QWidget*, QString, QString, QString, QString, QString, int, int)" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>

  <object-type name="QAbstractSpinBox">
    <modify-function signature="initStyleOption(QStyleOptionSpinBox*)const">
        <access modifier="private"/>
    </modify-function>
    <modify-function signature="setLineEdit(QLineEdit*)">
        <modify-argument index="1">
            <!-- Safe to ignore because the spinbox reparents the line edit -->
            <reference-count action="ignore"/>
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
<!--  
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionSpinBox"/>
                <replace from="final" to=""/>
            </insert-template>
        </inject-code>

        <modify-function signature="fixup(QString&amp;)const">
            <modify-argument index="1">
                <replace-type modified-type="java.lang.String"/>
                <conversion-rule class="shell">
                    jobject %out = (jobject) qtjambi_from_qstring(__jni_env, %in);
                </conversion-rule>
                <conversion-rule class="native">
                    QString %out = qtjambi_to_qstring(__jni_env, (jstring) %in);
                    QString *__qt_converted = &amp;%out;
                </conversion-rule>
            </modify-argument>

            <modify-argument index="0">
                <replace-type modified-type="java.lang.String"/>
                <conversion-rule class="native">
                    jobject %out = (jobject) qtjambi_from_qstring(__jni_env, *__qt_converted);
                </conversion-rule>
                <conversion-rule class="shell">
                    %1 = qtjambi_to_qstring(__jni_env, (jstring) %in);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="validate(QString&amp;,int&amp;)const">
            <modify-argument index="1">
                <replace-type modified-type="qt.gui.QValidator$QValidationData"/>
                <conversion-rule class="shell">
                    <insert-template name="gui.convert_validationdata_to_java">
                        <replace from="%STRING" to="%1"/>
                        <replace from="%POS" to="%2"/>
                    </insert-template>
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui.convert_validationdata_to_string"/>
                </conversion-rule>
            </modify-argument>

            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                    // nothing needed
                </conversion-rule>
                <conversion-rule class="native">
                    <insert-template name="gui.convert_validationdata_to_pos">
                        <replace from="%VALIDATIONDATA" to="%1"/>
                    </insert-template>
                </conversion-rule>
            </modify-argument>

            <modify-argument index="0">
                <conversion-rule class="native">
                    <insert-template name="gui.cleanup_validationdata_from_java"/>
                    jint %out = %in;
                </conversion-rule>
                <conversion-rule class="shell">
                    <insert-template name="gui.cleanup_validationdata_to_java">
                        <replace from="%STRING" to="%1"/>
                        <replace from="%POS" to="%2"/>
                    </insert-template>
                    QValidator::State %out = (QValidator::State) qtjambi_to_enumerator(__jni_env, %in);
                </conversion-rule>
            </modify-argument>
        </modify-function>-->
    </object-type>

  <object-type name="QTextFrame" delete-in-main-thread="yes">
    <extra-includes>
        <include file-name="QTextCursor" location="global"/>
    </extra-includes>
  </object-type>

  <object-type name="QImageIOHandler">
    <extra-includes>
        <include file-name="QRect" location="global"/>
    </extra-includes>
    <modify-function signature="setFormat(const QByteArray &amp;)const">
        <remove/>
    </modify-function>
    <modify-function signature="setDevice(QIODevice*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDevice"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="read(QImage*)">
        <modify-argument index="1">
            <replace-type modified-type="QImage"/>
<!--            <conversion-rule class="shell">
                jobject %out = qtjambi_from_object(__jni_env, %in, "QImage", "com/trolltech/qt/gui/", false);

                QtJambiLink *__link = %out != 0 ? QtJambiLink::findLink(__jni_env, %out) : 0;
            </conversion-rule>
            <conversion-rule class="native">
                QImage *%out = (QImage *) qtjambi_to_object(__jni_env, %in);
            </conversion-rule> -->
        </modify-argument>
<!--        <modify-argument index="0">
            <conversion-rule class="shell">
                // Invalidate object
                if (__link != 0) __link-&gt;resetObject(__jni_env);
                bool %out = (bool) %in;
            </conversion-rule>
        </modify-argument>-->
    </modify-function>

      <modify-function signature="name()const" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>

  <object-type name="QProxyModel">
    <modify-function signature="parent()const" remove="all"/>
    <extra-includes>
        <include file-name="QPixmap" location="global"/>
        <include file-name="QStringList" location="global"/>
        <include file-name="QSize" location="global"/>
    </extra-includes>
    <modify-function signature="setModel(QAbstractItemModel*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcModel"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QImageReader">
    <extra-includes>
        <include file-name="QColor" location="global"/>
        <include file-name="QRect" location="global"/>
        <include file-name="QSize" location="global"/>
        <include file-name="QStringList" location="global"/>
        <include file-name="QImage" location="global"/>
    </extra-includes>
    <modify-function signature="read(QImage*) ">
        <remove/>
    </modify-function>
    <modify-function signature="setDevice(QIODevice*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDevice"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QMovie">
    <extra-includes>
        <include file-name="QColor" location="global"/>
        <include file-name="QImage" location="global"/>
        <include file-name="QPixmap" location="global"/>
        <include file-name="QRect" location="global"/>
        <include file-name="QSize" location="global"/>
    </extra-includes>
    <modify-function signature="cacheMode()">
        <remove/>
    </modify-function>
    <modify-function signature="setDevice(QIODevice*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDevice"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QPageSetupDialog">
      <modify-function signature="open(QObject *, const char *)" remove="all"/> <!-- # TODO -->

  </object-type>

  <object-type name="QTabWidget">
<!--    <modify-function signature="initStyleOption(QStyleOptionTabWidgetFrame*)const">
        <access modifier="private"/>
    </modify-function>
    <inject-code>
        <insert-template name="gui.init_style_option">
            <replace from="%TYPE" to="QStyleOptionTabWidgetFrame"/>
        </insert-template>
    </inject-code>-->
    <modify-function signature="addTab(QWidget*,QIcon,QString)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addTab(QWidget*,QString)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertTab(int,QWidget*,QString)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertTab(int,QWidget*,QIcon,QString)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCornerWidget(QWidget*,Qt::Corner)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setTabBar(QTabBar*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QDrag">
    <extra-includes>
        <include file-name="QPoint" location="global"/>
        <include file-name="QPixmap" location="global"/>
    </extra-includes>
    <modify-function signature="setMimeData(QMimeData*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="start(QFlags&lt;Qt::DropAction&gt;)" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>

  <object-type name="QDateTimeEdit">
    <modify-function signature="setCalendarWidget(QCalendarWidget*)">
        <modify-argument index="1">
            <!-- Safe to ignore because widget is reparented -->
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    </object-type>

  <object-type name="QSortFilterProxyModel">
     <modify-function signature="parent()const" remove="all"/>
    <extra-includes>
        <include file-name="QItemSelection" location="global"/>
        <include file-name="QStringList" location="global"/>
        <include file-name="QSize" location="global"/>
    </extra-includes>

    <modify-function signature="setSourceModel(QAbstractItemModel *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcSourceModel"/>
        </modify-argument>
    </modify-function>

      <modify-function signature="clear()" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="filterChanged()" remove="all"/> <!--### Obsolete in 4.3-->
  
        <modify-function signature="match(QModelIndex, int, QVariant, int, QFlags&lt;Qt::MatchFlag&gt;) const">
            <modify-argument index="5">
                <replace-default-expression with="Qt.MatchFlag.MatchStartsWith | Qt.MatchFlag.MatchWrap"/>
            </modify-argument>
        </modify-function>
    </object-type>

  <object-type name="QSlider">
<!--    <modify-function signature="initStyleOption(QStyleOptionSlider*)const">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionSlider"/>
            </insert-template>
        </inject-code>-->
    </object-type>

  <object-type name="QInputContext">
    <extra-includes>
        <include file-name="QTextFormat" location="global"/>
    </extra-includes>
    <modify-function signature="setFocusWidget(QWidget*)">
        <remove/>
    </modify-function>
    <modify-function signature="filterEvent(const QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="mouseHandler(int,QMouseEvent*)">
        <modify-argument index="2" invalidate-after-use="yes"/>
    </modify-function>

  </object-type>

  <object-type name="QProgressDialog">
        <modify-function signature="open(QObject *, const char *)" remove="all"/> <!-- # TODO -->

    <modify-function signature="setBar(QProgressBar*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCancelButton(QPushButton*)">
        <modify-argument index="1">
            <!-- Safe to ignore because button is reparented -->
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setLabel(QLabel*)">
        <modify-argument index="1">
            <!-- Safe to ignore because label is reparented -->
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

  </object-type>

  <object-type name="QLabel">
<!--    <modify-function signature="picture()const">
        <access modifier="private"/>
        <rename to="picture_private"/>
    </modify-function>
-->
    <modify-function signature="setBuddy(QWidget *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcBuddy"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setMovie(QMovie *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcMovie"/>
        </modify-argument>
    </modify-function>
<!--    <modify-function signature="pixmap()const">
        <access modifier="private"/>
        <rename to="pixmap_private"/>
    </modify-function>

        <inject-code>
            <insert-template name="gui.getter_returning_nativepointer">
                <replace from="%RETURN_TYPE" to="QPicture"/>
                <replace from="%FUNCTION_NAME" to="picture"/>
            </insert-template>
        </inject-code>
        <inject-code>
            <insert-template name="gui.getter_returning_nativepointer">
                <replace from="%RETURN_TYPE" to="QPixmap"/>
                <replace from="%FUNCTION_NAME" to="pixmap"/>
            </insert-template>
        </inject-code> -->
    </object-type>

  <object-type name="QFileDialog">
    <extra-includes>
        <include file-name="QUrl" location="global"/>
    </extra-includes>
    <modify-function signature="open()" remove="all"/>
<!--     <modify-function signature="setVisible(bool)" remove="all"/> // properties_d -->
    <modify-function signature="getOpenFileName(QWidget*,QString,QString,QString,QString*,QFlags&lt;QFileDialog::Option&gt;)">
        <modify-argument index="1">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="3">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="4">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="5">
            <remove-default-expression/>
        </modify-argument>
<!--        <modify-argument index="6">
            <remove-default-expression/>
        </modify-argument>-->
    </modify-function>
<!--
    <modify-function signature="getOpenFileNames(QWidget*,QString,QString,QString,QString*,QFlags&lt;QFileDialog::Option&gt;)">
        <access modifier="private"/>
        <modify-argument index="1">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="3">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="4">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="5">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="6">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>
-->
    <modify-function signature="getSaveFileName(QWidget*,QString,QString,QString,QString*,QFlags&lt;QFileDialog::Option&gt;)">
        <modify-argument index="1">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="3">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="4">
            <remove-default-expression/>
        </modify-argument>
        <modify-argument index="5">
            <remove-default-expression/>
        </modify-argument>
<!--        <modify-argument index="6">
            <remove-default-expression/>
        </modify-argument>-->
    </modify-function>

    <modify-function signature="setIconProvider(QFileIconProvider*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcIconProvider"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="setItemDelegate(QAbstractItemDelegate*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcItemDelegate"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="setProxyModel(QAbstractProxyModel*)">
        <modify-argument index="1">
            <!-- Reparented -->
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QFileDialog___" quote-before-line="}// class"/>
        </inject-code>
<!--
        <template name="gui.filedialog_get_xxx_filename">
        public static %TYPE %FUNCTION_NAME(QWidget parent, string caption, String dir, Filter filter, Options options) {
            QNativePointer np = filter != null ? new QNativePointer(QNativePointer.Type.String) : null;
            %TYPE returned = %FUNCTION_NAME(parent, caption, dir, filter != null ? filter.filter : "", np, options);
            if (filter != null)
                filter.selectedFilter = np.stringValue();
            return returned;
        }

        public static %TYPE %FUNCTION_NAME(QWidget parent, String caption, String dir, Filter filter, Option ... options) {
            QNativePointer np = filter != null ? new QNativePointer(QNativePointer.Type.String) : null;
            %TYPE returned = %FUNCTION_NAME(parent, caption, dir, filter != null ? filter.filter : "", np, options);
            if (filter != null)
                filter.selectedFilter = np.stringValue();
            return returned;
        }

        public static %TYPE %FUNCTION_NAME(QWidget parent, String caption, String dir, Filter filter) {
            return %FUNCTION_NAME(parent, caption, dir, filter, new Options(0));
        }

        public static %TYPE %FUNCTION_NAME(QWidget parent, String caption, String dir) {
            return %FUNCTION_NAME(parent, caption, dir, null);
        }

        public static %TYPE %FUNCTION_NAME(QWidget parent, String caption) {
            return %FUNCTION_NAME(parent, caption, "");
        }

        public static %TYPE %FUNCTION_NAME(QWidget parent) {
            return %FUNCTION_NAME(parent, "");
        }

        public static %TYPE %FUNCTION_NAME() {
            return %FUNCTION_NAME(null);
        }

        </template>

        <inject-code>
            <insert-template name="gui.filedialog_get_xxx_filename">
                <replace from="%FUNCTION_NAME" to="getOpenFileName"/>
                <replace from="%TYPE" to="String"/>
            </insert-template>
        </inject-code>
        <inject-code>
            <insert-template name="gui.filedialog_get_xxx_filename">
                <replace from="%FUNCTION_NAME" to="getOpenFileNames"/>
                <replace from="%TYPE" to="java.util.List&lt;String&gt;"/>
            </insert-template>
        </inject-code>
        <inject-code>
            <insert-template name="gui.filedialog_get_xxx_filename">
                <replace from="%FUNCTION_NAME" to="getSaveFileName"/>
                <replace from="%TYPE" to="String"/>
            </insert-template>
        </inject-code>-->
    </object-type>

  <object-type name="QErrorMessage"/>

  <object-type name="QTabBar">
    <extra-includes>
        <include file-name="QIcon" location="global"/>
    </extra-includes>
<!--    <modify-function signature="initStyleOption(QStyleOptionTab*,int)const">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QTabBar___" quote-before-line="}// class"/>
        </inject-code>
-->
    </object-type>

  <object-type name="QStandardItemModel">
    <modify-function signature="insertColumn(int,const QModelIndex &amp;)" remove="all"/>
    <modify-function signature="insertRow(int,const QModelIndex &amp;)" remove="all"/>
    <modify-function signature="parent()const" remove="all"/>
    <extra-includes>
        <include file-name="QStringList" location="global"/>
        <include file-name="QSize" location="global"/>
    </extra-includes>

    <modify-function signature="appendColumn(const QList&lt;QStandardItem *&gt;&amp;)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeColumn(int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeRow(int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeHorizontalHeaderItem(int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeVerticalHeaderItem(int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeItem(int,int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="appendRow(const QList&lt;QStandardItem *&gt;&amp;)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="appendRow(QStandardItem *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertColumn(int, const QList&lt;QStandardItem *&gt;&amp;)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertRow(int, const QList&lt;QStandardItem *&gt;&amp;)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertRow(int, QStandardItem *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setHorizontalHeaderItem(int, QStandardItem *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItem(int, int, QStandardItem *)">
        <modify-argument index="3">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItem(int, QStandardItem *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItemPrototype(const QStandardItem *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setVerticalHeaderItem(int, QStandardItem *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QRadioButton">
<!--    <modify-function signature="initStyleOption(QStyleOptionButton*)const">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionButton"/>
            </insert-template>
        </inject-code>-->
    </object-type>

  <object-type name="QScrollBar">
<!--    <modify-function signature="initStyleOption(QStyleOptionSlider*)const">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionSlider"/>
            </insert-template>
        </inject-code>-->
    </object-type>

  <object-type name="QClipboard">
    <extra-includes>
        <include file-name="QImage" location="global"/>
        <include file-name="QPixmap" location="global"/>
    </extra-includes>
    <modify-function signature="setMimeData(QMimeData *, QClipboard::Mode)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>


  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QClipboard___" quote-before-line="}// class"/>
        </inject-code>

    </object-type>

  <object-type name="QAbstractScrollArea">
    <modify-function signature="setupViewport(QWidget *)" access="non-final"/>
    <modify-function signature="addScrollBarWidget(QWidget*,QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCornerWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setHorizontalScrollBar(QScrollBar*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="setVerticalScrollBar(QScrollBar*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="setViewport(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="setupViewport(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="viewportEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QAbstractScrollArea___" quote-before-line="}// class"/>
        </inject-code>

    </object-type>

  <object-type name="QPaintEngineState">
    <extra-includes>
        <include file-name="QPainterPath" location="global"/>
    </extra-includes>
	<modify-function signature="painter() const">
		<store-result/>
	</modify-function>
  </object-type>

  <object-type name="QRubberBand">
<!--    <modify-function signature="initStyleOption(QStyleOptionRubberBand*)const">
        <access modifier="private"/>
    </modify-function>-->
    <modify-function signature="move(int,int)" rename="moveRubberBand"/>
    <modify-function signature="move(const QPoint &amp;)" rename="moveRubberBand"/>
    <modify-function signature="resize(int,int)" rename="resizeRubberBand"/>
    <modify-function signature="resize(const QSize &amp;)" rename="resizeRubberBand"/>
    <modify-function signature="setGeometry(int,int,int,int)" rename="setRubberBandGeometry"/>
    <modify-function signature="setGeometry(const QRect &amp;)" rename="setRubberBandGeometry"/>
  
<!--        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionRubberBand"/>
            </insert-template>
        </inject-code> -->
    </object-type>

  <object-type name="QTextLayout">
    <extra-includes>
        <include file-name="QTextOption" location="global"/>
    </extra-includes>
  </object-type>

  <object-type name="QTableWidget">
    <modify-function signature="mimeData(const QList&lt;QTableWidgetItem*&gt;)const">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="isSortingEnabled()const" remove="all"/>
    <modify-function signature="setSortingEnabled(bool)" remove="all"/>
    <modify-function signature="setHorizontalHeaderItem(int, QTableWidgetItem *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItem(int, int, QTableWidgetItem *)">
        <modify-argument index="3">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeHorizontalHeaderItem(int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeVerticalHeaderItem(int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="takeItem(int,int)">
        <modify-argument index="return">
            <define-ownership class="java" owner="default"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItemPrototype(const QTableWidgetItem *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setVerticalHeaderItem(int, QTableWidgetItem *)">
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCellWidget(int,int,QWidget*)">
        <modify-argument index="3">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentItem(QTableWidgetItem*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentItem(QTableWidgetItem*,QFlags&lt;QItemSelectionModel::SelectionFlag&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItemSelected(const QTableWidgetItem*,bool)">
        <remove/>
    </modify-function>
    <modify-function signature="isItemSelected(const QTableWidgetItem*)const">
        <remove/>
    </modify-function>
    <modify-function signature="setModel(QAbstractItemModel*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QTextDocument">
    <extra-includes>
        <include file-name="QTextBlock" location="global"/>
        <include file-name="QTextFormat" location="global"/>
        <include file-name="QTextCursor" location="global"/>
    </extra-includes>
    <modify-function signature="setDocumentLayout(QAbstractTextDocumentLayout*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
<!--  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QTextDocument___" quote-before-line="}// class"/>
        </inject-code>
-->
    </object-type>

  <object-type name="QSplitter">

    <modify-function signature="getRange(int,int*,int*)const">
        <access modifier="private"/>
    </modify-function>
    <modify-function signature="addWidget(QWidget *)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertWidget(int, QWidget *)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QSplitter___" quote-before-line="}// class"/>
        </inject-code>

    </object-type>

  <object-type name="QGroupBox">
<!--    <modify-function signature="initStyleOption(QStyleOptionGroupBox*)const">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionGroupBox"/>
            </insert-template>
        </inject-code>-->
    </object-type>

  <object-type name="QStackedWidget">
    <modify-function signature="addWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertWidget(int,QWidget*)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setCurrentWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QSplitterHandle">
  </object-type>

  <object-type name="QDial">
<!--    <modify-function signature="initStyleOption(QStyleOptionSlider*)const">
        <access modifier="private"/>
    </modify-function>
  
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionSlider"/>
            </insert-template>
        </inject-code>-->
    </object-type>

  <object-type name="QLineEdit">
<!--    <modify-function signature="initStyleOption(QStyleOptionFrame*)const">
        <access modifier="private"/>
    </modify-function>-->
    <modify-function signature="setCompleter(QCompleter *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcCompleter"/>
        </modify-argument>
    </modify-function>
     <modify-function signature="setValidator(const QValidator *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcValidator"/>
        </modify-argument>
    </modify-function>
<!--  
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionFrame"/>
            </insert-template>
        </inject-code>-->
    </object-type>

  <object-type name="QLCDNumber"/>

  <object-type name="QSplashScreen">
    <modify-function signature="showMessage(const QString &amp;, int, const QColor &amp;)">
      <modify-argument index="3">
        <replace-default-expression with="QColor.Black"/>
      </modify-argument>
    </modify-function>
    <modify-function signature="repaint()" remove="all"/>
    <modify-function signature="drawContents(QPainter*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
  </object-type>

  <object-type name="QDockWidget">
<!--    <modify-function signature="initStyleOption(QStyleOptionDockWidget*)const">
        <access modifier="private"/>
    </modify-function>
	
    <inject-code>
        <insert-template name="gui.init_style_option">
            <replace from="%TYPE" to="QStyleOptionDockWidget"/>
        </insert-template>
    </inject-code>-->
    <modify-function signature="setTitleBarWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QAbstractProxyModel">
    <extra-includes>
        <include file-name="QItemSelection" location="global"/>
        <include file-name="QStringList" location="global"/>
        <include file-name="QSize" location="global"/>
    </extra-includes>

    <modify-function signature="setSourceModel(QAbstractItemModel *)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcSourceModel"/>
        </modify-argument>
    </modify-function>

  </object-type>

  <object-type name="QDesktopWidget">
  </object-type>

  <object-type name="QFrame">
  </object-type>

  <object-type name="QTextTable">
    <modify-function signature="format() const">
        <rename to="tableFormat"/>
    </modify-function>
    <extra-includes>
        <include file-name="QTextCursor" location="global"/>
    </extra-includes>
  </object-type>

  <object-type name="QSpinBox">
    <modify-function signature="valueChanged(const QString &amp;)">
        <rename to="valueStringChanged"/>
    </modify-function>
  </object-type>

  <object-type name="QTextBrowser">
    <modify-function signature="highlighted(const QString &amp;)">
        <rename to="highlightedString"/>
    </modify-function>
  </object-type>

  <object-type name="QDoubleSpinBox">
    <modify-function signature="valueChanged(const QString &amp;)">
        <rename to="valueStringChanged"/>
    </modify-function>
  </object-type>

  <object-type name="QButtonGroup">
    <modify-function signature="buttonClicked(int)">
        <rename to="buttonIdClicked"/>
    </modify-function>
    <modify-function signature="buttonPressed(int)">
        <rename to="buttonIdPressed"/>
    </modify-function>
    <modify-function signature="buttonReleased(int)">
        <rename to="buttonIdReleased"/>
    </modify-function>
    <modify-function signature="addButton(QAbstractButton *)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcButtons"/>
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addButton(QAbstractButton *, int)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcButtons"/>
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeButton(QAbstractButton *)">
        <modify-argument index="1">
            <reference-count action="remove" variable-name="__rcButtons"/>
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setId(QAbstractButton *,int)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QToolBar">
    <modify-function signature="addAction(QAction *)" remove="all"/>
<!--    <modify-function signature="initStyleOption(QStyleOptionToolBar*)const">
        <access modifier="private"/>
    </modify-function>-->
    <modify-function signature="addAction(QIcon,QString,const QObject*,const char*)">
        <remove/>
    </modify-function>
    <modify-function signature="addAction(QString,const QObject*,const char*)">
        <remove/>
    </modify-function>
    <modify-function signature="addWidget(QWidget*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertWidget(QAction*,QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="2">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertSeparator(QAction*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QToolBar___" quote-before-line="}// class"/>
        </inject-code>
<!--  
        <inject-code>
            <insert-template name="gui.init_style_option">
                <replace from="%TYPE" to="QStyleOptionToolBar"/>
            </insert-template>
        </inject-code>
        <inject-code>
            <insert-template name="gui.addAction">
                <replace from="%POST_CALL" to=""/>
                <replace from=" %END_EXTRA" to=""/>
                <replace from=" %END_CALL_EXTRA" to=""/>
                <replace from="%EXTRA" to="QIcon icon,"/>
                <replace from="%CALL_EXTRA" to="icon,"/>
            </insert-template>
        </inject-code>
        <inject-code>
            <insert-template name="gui.addAction">
                <replace from="%POST_CALL" to=""/>
                <replace from=" %END_EXTRA" to=""/>
                <replace from=" %END_CALL_EXTRA" to=""/>
                <replace from="%EXTRA " to=""/>
                <replace from="%CALL_EXTRA " to=""/>
            </insert-template>
        </inject-code> -->
    </object-type>

  <object-type name="QPaintEngine">

	<modify-function signature="painter() const">
		<store-result/>
	</modify-function>

    <modify-function signature="begin(QPaintDevice*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="updateState(QPaintEngineState)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="drawTextItem(QPointF,QTextItem)">
        <modify-argument index="2" invalidate-after-use="yes"/>
    </modify-function>

    <extra-includes>
        <include file-name="QVarLengthArray" location="global"/>
    </extra-includes>
    <modify-function signature="setPaintDevice(QPaintDevice*)">
        <remove/>
    </modify-function>
    <modify-field name="state" read="false" write="false"/>
<!--  
        <modify-function signature="drawLines(const QLine *, int)">
            <modify-argument index="1">
                <replace-type modified-type="qt.gui.QLine[]"/>
                <conversion-rule class="shell">
                jobjectArray %out = qtjambi_from_array(__jni_env, %in, %2,
                                                       "QLine", "com/trolltech/qt/gui/");
                </conversion-rule>
                <conversion-rule class="native">
                QVarLengthArray&lt;QLine, 32&gt; __lines;
                int __size = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                for (int i=0; i&lt;__size; ++i)
                    __lines.append(*(QLine *)qtjambi_to_object(__jni_env, __jni_env-&gt;GetObjectArrayElement((jobjectArray) %in, i)));
                const QLine *%out = %1 == 0 ? 0 : __lines.constData();
                </conversion-rule>

            </modify-argument>
            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                /* nothing */
                </conversion-rule>
                <conversion-rule class="native">
                int %out = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="drawLines(const QLineF *, int)">
            <modify-argument index="1">
                <replace-type modified-type="qt.gui.QLineF[]"/>
                <conversion-rule class="shell">
                jobjectArray %out = qtjambi_from_array(__jni_env, %in, %2,
                                                       "QLineF", "com/trolltech/qt/gui/");
                </conversion-rule>
                <conversion-rule class="native">
                QVarLengthArray&lt;QLineF, 32&gt; __data;
                int __size = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                for (int i=0; i&lt;__size; ++i)
                    __data.append(*(QLineF *)qtjambi_to_object(__jni_env, __jni_env-&gt;GetObjectArrayElement((jobjectArray) %in, i)));
                const QLineF *%out = %1 == 0 ? 0 : __data.constData();
                </conversion-rule>
            </modify-argument>
            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                /* nothing */
                </conversion-rule>
                <conversion-rule class="native">
                int %out = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="drawRects(const QRectF *, int)">
            <modify-argument index="1">
                <replace-type modified-type="qt.core.QRectF[]"/>
                <conversion-rule class="shell">
                jobjectArray %out = qtjambi_from_array(__jni_env, %in, %2,
                                                       "QRectF", "com/trolltech/qt/core/");
                </conversion-rule>
                <conversion-rule class="native">
                QVarLengthArray&lt;QRectF, 32&gt; __data;
                int __size = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                for (int i=0; i&lt;__size; ++i)
                    __data.append(*(QRectF *)qtjambi_to_object(__jni_env, __jni_env-&gt;GetObjectArrayElement((jobjectArray) %in, i)));
                const QRectF *%out = %1 == 0 ? 0 : __data.constData();
                </conversion-rule>
            </modify-argument>
            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                /* nothing */
                </conversion-rule>
                <conversion-rule class="native">
                int %out = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="drawRects(const QRect *, int)">
            <modify-argument index="1">
                <replace-type modified-type="qt.core.QRect[]"/>
                <conversion-rule class="shell">
                jobjectArray %out = qtjambi_from_array(__jni_env, %in, %2,
                                                       "QRect", "com/trolltech/qt/core/");
                </conversion-rule>
                <conversion-rule class="native">
                QVarLengthArray&lt;QRect, 32&gt; __data;
                int __size = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                for (int i=0; i&lt;__size; ++i)
                    __data.append(*(QRect *)qtjambi_to_object(__jni_env, __jni_env-&gt;GetObjectArrayElement((jobjectArray) %in, i)));
                const QRect *%out = %1 == 0 ? 0 : __data.constData();
                </conversion-rule>
            </modify-argument>
            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                /* nothing */
                </conversion-rule>
                <conversion-rule class="native">
                int %out = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="drawPoints(const QPoint *, int)">
            <modify-argument index="1">
                <replace-type modified-type="qt.core.QPoint[]"/>
                <conversion-rule class="shell">
                jobjectArray %out = qtjambi_from_array(__jni_env, %in, %2,
                                                       "QPoint", "com/trolltech/qt/core/");
                </conversion-rule>
                <conversion-rule class="native">
                QVarLengthArray&lt;QPoint, 32&gt; __data;
                int __size = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                for (int i=0; i&lt;__size; ++i)
                    __data.append(*(QPoint *)qtjambi_to_object(__jni_env, __jni_env-&gt;GetObjectArrayElement((jobjectArray) %in, i)));
                const QPoint *%out = %1 == 0 ? 0 : __data.constData();
                </conversion-rule>
            </modify-argument>

            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                /* nothing */
                </conversion-rule>
                <conversion-rule class="native">
                int %out = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="drawPoints(const QPointF *, int)">
            <modify-argument index="1">
                <replace-type modified-type="qt.core.QPointF[]"/>
                <conversion-rule class="shell">
                jobjectArray %out = qtjambi_from_array(__jni_env, %in, %2,
                                                       "QPointF", "com/trolltech/qt/core/");
                </conversion-rule>
                <conversion-rule class="native">
                QVarLengthArray&lt;QPointF, 32&gt; __data;
                int __size = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                for (int i=0; i&lt;__size; ++i)
                    __data.append(*(QPointF *)qtjambi_to_object(__jni_env, __jni_env-&gt;GetObjectArrayElement((jobjectArray) %in, i)));
                const QPointF *%out = %1 == 0 ? 0 : __data.constData();
                </conversion-rule>
            </modify-argument>
            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                /* nothing */
                </conversion-rule>
                <conversion-rule class="native">
                int %out = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="drawPolygon(const QPoint *, int, QPaintEngine::PolygonDrawMode)">
            <modify-argument index="1">
                <replace-type modified-type="qt.core.QPoint[]"/>
                <conversion-rule class="shell">
                jobjectArray %out = qtjambi_from_array(__jni_env, %in, %2,
                                                       "QPoint", "com/trolltech/qt/core/");
                </conversion-rule>
                <conversion-rule class="native">
                QVarLengthArray&lt;QPoint, 32&gt; __data;
                int __size = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                for (int i=0; i&lt;__size; ++i)
                    __data.append(*(QPoint *)qtjambi_to_object(__jni_env, __jni_env-&gt;GetObjectArrayElement((jobjectArray) %in, i)));
                const QPoint *%out = %1 == 0 ? 0 : __data.constData();
                </conversion-rule>
            </modify-argument>
            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                /* nothing */
                </conversion-rule>
                <conversion-rule class="native">
                int %out = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                </conversion-rule>
            </modify-argument>
        </modify-function>

        <modify-function signature="drawPolygon(const QPointF *, int, QPaintEngine::PolygonDrawMode)">
            <modify-argument index="1">
                <replace-type modified-type="qt.core.QPointF[]"/>
                <conversion-rule class="shell">
                jobjectArray %out = qtjambi_from_array(__jni_env, %in, %2,
                                                       "QPointF", "com/trolltech/qt/core/");
                </conversion-rule>
                <conversion-rule class="native">
                QVarLengthArray&lt;QPointF, 32&gt; __data;
                int __size = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                for (int i=0; i&lt;__size; ++i)
                    __data.append(*(QPointF *)qtjambi_to_object(__jni_env, __jni_env-&gt;GetObjectArrayElement((jobjectArray) %in, i)));
                const QPointF *%out = %1 == 0 ? 0 : __data.constData();
                </conversion-rule>
            </modify-argument>
            <modify-argument index="2">
                <remove-argument/>
                <conversion-rule class="shell">
                /* nothing */
                </conversion-rule>
                <conversion-rule class="native">
                int %out = %1 == 0 ? 0 : __jni_env-&gt;GetArrayLength((jarray) %1);
                </conversion-rule>
            </modify-argument>
        </modify-function>
		-->
    </object-type>

  <object-type name="QAbstractTableModel">
<!--  <modify-function signature="parent(const QModelIndex &amp;)const" remove="all"/>
  <modify-function signature="hasChildren(const QModelIndex &amp;)const" remove="all"/> -->
    <extra-includes>
        <include file-name="QStringList" location="global"/>
        <include file-name="QSize" location="global"/>
    </extra-includes>
  </object-type>

  <object-type name="QGuiSignalMapper">
        <modify-function signature="setMapping(QObject*,QWidget*)">
            <modify-argument index="1">
                <reference-count action="add" declare-variable="qt.core.QSignalMapper" variable-name="__rcMappings"/>
            </modify-argument>
            <inject-code class="java" position="end">
                <argument-map index="1" meta-name="%1"/>
                <argument-map index="2" meta-name="%2"/>
                java.util.Hashtable&lt;qt.core.QObject, Object&gt; __rcWidgetForObject = (java.util.Hashtable&lt;qt.core.QObject, Object&gt;) qt.GeneratorUtilities.fetchField(this, qt.core.QSignalMapper.class, "__rcWidgetForObject");
                if (%2 == null)
                    __rcWidgetForObject.remove(%1);
                else
                    __rcWidgetForObject.put(%1,%2);
            </inject-code>
        </modify-function>
    </object-type>

  <object-type name="QComboBox">
<!--    <modify-function signature="initStyleOption(QStyleOptionComboBox*)const">
        <access modifier="private"/>
    </modify-function>-->
    <modify-function signature="setCompleter(QCompleter*)">
        <modify-argument index="1">
            <reference-count variable-name="__rcCompleter" action="set"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setValidator(const QValidator*)">
        <modify-argument index="1">
            <reference-count variable-name="__rcValidator" action="set"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItemDelegate(QAbstractItemDelegate *)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setView(QAbstractItemView *)">
        <modify-argument index="1">
            <no-null-pointer/>
            <!-- Safe to ignore because combo box reparents view -->
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setLineEdit(QLineEdit *)">
        <modify-argument index="1">
            <no-null-pointer/>
            <!-- Safe to ignore because combo box reparents line edit -->
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setModel(QAbstractItemModel *)">
        <modify-argument index="1">
            <no-null-pointer/>
            <reference-count action="set" variable-name="__rcModel"/>
        </modify-argument>
    </modify-function>
<!--    <inject-code>
        <insert-template name="gui.init_style_option">
            <replace from="%TYPE" to="QStyleOptionComboBox"/>
        </insert-template>
    </inject-code>-->
    <inject-code>
        <import-file name="typesystem_gui-java.java" quote-after-line="class QComboBox___" quote-before-line="}// class"/>
    </inject-code>
    <modify-function signature="activated(int)">&gt;
        <rename to="activatedIndex"/>
    </modify-function>
    <modify-function signature="currentIndexChanged(const QString &amp;)">
        <rename to="currentStringChanged"/>
    </modify-function>
    <modify-function signature="highlighted(int)">
        <rename to="highlightedIndex"/>
    </modify-function>

      <modify-function signature="autoCompletion()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="autoCompletionCaseSensitivity()const" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setAutoCompletion(bool)" remove="all"/> <!--### Obsolete in 4.3-->
      <modify-function signature="setAutoCompletionCaseSensitivity(Qt::CaseSensitivity)" remove="all"/> <!--### Obsolete in 4.3-->
  </object-type>

  <object-type name="QTextEdit">
    <extra-includes>
        <include file-name="QTextCursor" location="global"/>
    </extra-includes>
    <modify-function signature="setDocument(QTextDocument*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDocument"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertFromMimeData(const QMimeData*)    ">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>

  <object-type name="QPrinter" delete-in-main-thread="yes">
  
  
    <modify-function signature="setEngines(QPrintEngine*,QPaintEngine*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcPrintEngine"/>
        </modify-argument>
        <modify-argument index="2">
            <reference-count action="set" variable-name="__rcPaintEngine"/>
        </modify-argument>
    </modify-function>
  
        <modify-function signature="getPageMargins(double*,double*,double*,double*,QPrinter::Unit)const" access="private"/>
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QPrinter___" quote-before-line="}// class"/>
        </inject-code>
    </object-type>

  <object-type name="QAction">
      <modify-function signature="setMenu(QMenu*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcMenu"/>
        </modify-argument>
    </modify-function>

  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QAction___" quote-before-line="}// class"/>
        </inject-code>
<!--
        <modify-function signature="setActionGroup(QActionGroup*)">
            <modify-argument index="1">
                <reference-count action="ignore"/>
            </modify-argument>
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
            java.util.Collection&lt;Object&gt; __rcTmp = null;
            if (__rcActionGroup != null) {
                __rcTmp = (java.util.Collection&lt;Object&gt;)qt.GeneratorUtilities.fetchField(__rcActionGroup, QActionGroup.class, "__rcActions");
                while (__rcTmp.contains(this))
                    __rcTmp.remove(this);
            }
            __rcActionGroup = %1;
            if (__rcActionGroup != null) {
                __rcTmp = (java.util.Collection&lt;Object&gt;)qt.GeneratorUtilities.fetchField(__rcActionGroup, QActionGroup.class, "__rcActions");
                __rcTmp.add(this);
            }
            </inject-code>
        </modify-function>
		-->
    </object-type>

  <object-type name="QPainter">
<!--  <add-class name="QPaintEngineState"/> -->
    <extra-includes>
      <include file-name="QWidget" location="global"/>
      <include file-name="QPainterPath" location="global"/>
      <include file-name="QPixmap" location="global"/>
	  <include file-name="qt.gui.QGradient" location="java"/>
    </extra-includes>

    <modify-function signature="drawText(const QPointF &amp;, const QString &amp;, int, int)" remove="all"/>

    <modify-function signature="drawConvexPolygon(const QPoint *, int)">
      <access modifier="private"/>
    </modify-function>
    <modify-function signature="drawConvexPolygon(const QPointF *, int)">
      <access modifier="private"/>
    </modify-function>
    <modify-function signature="drawLines(const QLine *, int)">
        <access modifier="private"/>
    </modify-function>
    <modify-function signature="drawLines(const QLineF *, int)">
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="drawPoints(const QPoint *, int)">
        <access modifier="private"/>
    </modify-function>
    <modify-function signature="drawPoints(const QPointF *, int)">
        <access modifier="private"/>
    </modify-function>
    
    <modify-function signature="drawPolygon(const QPoint *, int, Qt::FillRule)">
        <access modifier="private"/>
    </modify-function>
    <modify-function signature="drawPolygon(const QPointF *, int, Qt::FillRule)">
        <access modifier="private"/>
    </modify-function>

    <modify-function signature="drawPolyline(const QPoint *, int)">
        <access modifier="private"/>
    </modify-function>
    <modify-function signature="drawPolyline(const QPointF *, int)">
        <access modifier="private"/>
    </modify-function>
    
    <modify-function signature="drawRects(const QRect *, int)">
        <access modifier="private"/>
    </modify-function>
    <modify-function signature="drawRects(const QRectF *, int)">
        <access modifier="private"/>
    </modify-function>
    
    <!-- removed stuff -->
    <modify-function signature="drawRects(const QVector&lt;QRect&gt; &amp;)">
        <remove/>
    </modify-function>
    <modify-function signature="drawRects(const QVector&lt;QRectF&gt; &amp;)">
        <remove/>
    </modify-function>

    <modify-function signature="drawLines(const QVector&lt;QLine&gt; &amp;)">
        <remove/>
    </modify-function>
    <modify-function signature="drawLines(const QVector&lt;QLineF&gt; &amp;)">
        <remove/>
    </modify-function>

    <modify-function signature="drawLines(const QVector&lt;QPoint&gt; &amp;)">
        <remove/>
    </modify-function>
    <modify-function signature="drawLines(const QVector&lt;QPointF&gt; &amp;)">
        <remove/>
    </modify-function>

    <modify-function signature="drawLines(const QPoint *, int)">
        <remove/>
    </modify-function>
    <modify-function signature="drawLines(const QPointF *, int)">
        <remove/>
    </modify-function>


    <modify-function signature="QPainter(QPaintDevice *)">
        <modify-argument index="1">
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
    <modify-function signature="begin(QPaintDevice *)">
        <modify-argument index="1">
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
    <modify-function signature="initFrom(const QWidget *)">
        <modify-argument index="1">
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setRedirected(const QPaintDevice *, QPaintDevice *, const QPoint &amp;)">
        <modify-argument index="1">
            <no-null-pointer/>
        </modify-argument>
    </modify-function>
    <modify-function signature="restoreRedirected(const QPaintDevice *)">
        <modify-argument index="1">
            <no-null-pointer/>
        </modify-argument>
    </modify-function>

    <modify-function signature="redirected(const QPaintDevice*,QPoint*)">
        <access modifier="private"/>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
    </modify-function>
    <modify-function signature="matrix()const" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="matrixEnabled()const" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="setMatrix(QMatrix, bool)" remove="all"/> <!--### Obsolete in 4.3-->
    <modify-function signature="setMatrixEnabled(bool)" remove="all"/> <!--### Obsolete in 4.3-->
  
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QPainter___" quote-before-line="}// class"/>
        </inject-code>
<!--
    <inject-code class="destructor-function">
      if (((QPainter *) ptr)-&gt;isActive()) {
          qWarning("QPainter: trying to delete an active painter, "
                       "did you forget to call \"end()\"?\n");
              return;
          }
        </inject-code>

        <template name="gui.painter_draw_text_general">
        public final void drawText(%RECT_ARGUMENTS, int flags, String text, %RECT_TYPE boundingRect) {
            drawText(%RECT_CALL_ARGUMENTS, flags, text, boundingRect == null ? null : boundingRect.nativePointer());
        }

        public final void drawText(%RECT_ARGUMENTS, int flags, String text) {
            drawText(%RECT_CALL_ARGUMENTS, flags, text, (%RECT_TYPE) null);
        }
        </template>

        <template name="gui.painter_draw_text_qrect">
            <insert-template name="gui.painter_draw_text_general">
                <replace from="%RECT_ARGUMENTS" to="%RECT_TYPE rectangle"/>
                <replace from="%RECT_CALL_ARGUMENTS" to="rectangle"/>
            </insert-template>
        </template>
        <inject-code>
            <insert-template name="gui.painter_draw_text_qrect">
                <replace from="%RECT_TYPE" to="qt.core.QRect"/>
            </insert-template>
        </inject-code>
        <inject-code>
            <insert-template name="gui.painter_draw_text_qrect">
                <replace from="%RECT_TYPE" to="qt.core.QRectF"/>
            </insert-template>
        </inject-code>
        <inject-code>
            <insert-template name="gui.painter_draw_text_general">
                <replace from="%RECT_TYPE" to="qt.core.QRect"/>
                <replace from="%RECT_ARGUMENTS" to="int x, int y, int width, int height"/>
                <replace from="%RECT_CALL_ARGUMENTS" to="x, y, width, height"/>
            </insert-template>
        </inject-code>


        <modify-function signature="setRedirected(const QPaintDevice*, QPaintDevice*, const QPoint &amp;)">
            <modify-argument index="1">
                <reference-count action="ignore"/>
            </modify-argument>
            <modify-argument index="2">
                <reference-count action="ignore"/>
            </modify-argument>
            <inject-code position="end">
                <argument-map index="1" meta-name="%1"/>
                <argument-map index="2" meta-name="%2"/>
            __rcRedirections.push(%1);
            __rcRedirections.push(%2);
            </inject-code>
        </modify-function>
        <modify-function signature="restoreRedirected(const QPaintDevice*)">
            <inject-code position="end">
            if (!__rcRedirections.empty()) __rcRedirections.pop();
            if (!__rcRedirections.empty()) __rcRedirections.pop();
            </inject-code>
        </modify-function>
		-->
    </object-type>

  <object-type name="QApplication">
    <extra-includes>
      <include file-name="QBasicTimer" location="global"/>
      <include file-name="QFont" location="global"/>
      <include file-name="QFontMetrics" location="global"/>
      <include file-name="QPalette" location="global"/>
      <include file-name="QIcon" location="global"/>
      <include file-name="QLocale" location="global"/>

      <include file-name="qt.qtd.Str" location="java"/>
    </extra-includes>

    <modify-function signature="QApplication(int &amp;, char  **, int)">
        <access modifier="private"/>
    </modify-function>
    <modify-function signature="QApplication(int &amp;, char **, QApplication::Type, int)">
        <remove/>
    </modify-function>
    <modify-function signature="QApplication(int &amp;, char **, bool, int)">
        <remove/>
    </modify-function>

    <modify-function signature="font(const char*)">
        <remove/>
    </modify-function>
    <modify-function signature="setFont(QFont,const char*)">
        <access modifier="private"/>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
        <rename to="setFont_private"/>
    </modify-function>

    <modify-function signature="palette(const char*)">
        <remove/>
    </modify-function>
    <modify-function signature="setPalette(QPalette,const char*)">
        <access modifier="private"/>
        <modify-argument index="2">
            <remove-default-expression/>
        </modify-argument>
        <rename to="setPalette_private"/>
    </modify-function>
<!--
    <modify-function signature="overrideCursor()">
        <access modifier="private"/>
        <rename to="overrideCursor_private"/>
    </modify-function>
-->
    <modify-function signature="setInputContext(QInputContext*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setActiveWindow(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
<!--    <modify-function signature="setStyle(QStyle*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  -->
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QApplication___" quote-before-line="}// class"/>
        </inject-code>
<!--        <modify-function signature="QApplication(int &amp;, char  **, int)">
            <inject-code class="shell">
                qtjambi_register_variant_handler();
            </inject-code>
        </modify-function>-->
        <template name="gui.application_char_pointer_function">
        public static %RETURN_TYPE %FUNCTION_NAME(%PRE_ARGUMENTS %COMMA QByteArray className) {
            return %FUNCTION_NAME(%PRE_CALL_ARGUMENTS %COMMA className == null ? null : className.data());
        }
        </template>
    </object-type>

  <object-type name="QCommandLinkButton"/>
  <object-type name="QFileSystemModel">
    <modify-function signature="setIconProvider(QFileIconProvider*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcIconProvider"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QFormLayout">
    <modify-function signature="addRow(QWidget*,QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addRow(QLayout*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addRow(QWidget*,QLayout*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="addRow(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addRow(QString,QLayout*)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addRow(QString,QWidget*)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertRow(int,QLayout*)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertRow(int,QWidget*,QLayout*)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="3">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertRow(int,QWidget*,QWidget*)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="3">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertRow(int,QWidget*)">
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertRow(int,QString,QLayout*)">
        <modify-argument index="3">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertRow(int,QString,QWidget*)">
        <modify-argument index="3">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setLayout(int,QFormLayout::ItemRole,QLayout*)">
        <modify-argument index="3">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setWidget(int,QFormLayout::ItemRole,QWidget*)">
        <modify-argument index="3">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setItem(int,QFormLayout::ItemRole,QLayoutItem*)" access="private" rename="setItem_private">
        <modify-argument index="3">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addItem(QLayoutItem*)">
        <modify-argument index="1">
            <define-ownership class="java" owner="c++"/>
        </modify-argument>
    </modify-function>
  
        <modify-function signature="getLayoutPosition(QLayout*,int*,QFormLayout::ItemRole*)const" access="private"/>
        <modify-function signature="getWidgetPosition(QWidget*,int*,QFormLayout::ItemRole*)const" access="private"/>
        <modify-function signature="getItemPosition(int,int*,QFormLayout::ItemRole*)const" access="private"/>
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QFormLayout___" quote-before-line="}// class"/>
        </inject-code>
    </object-type>
  <object-type name="QGraphicsGridLayout" delete-in-main-thread="yes">
    <modify-function signature="addItem(QGraphicsLayoutItem*,int,int,QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcItems"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="addItem(QGraphicsLayoutItem*,int,int,int,int,QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcItems"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setAlignment(QGraphicsLayoutItem*,QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QGraphicsLayout" delete-in-main-thread="yes">

    <modify-function signature="widgetEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="setParentLayoutItem(QGraphicsLayoutItem*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcParentLayoutItem"/>
        </modify-argument>
    </modify-function>
  
       <!-- <modify-function signature="getContentsMargins(double*,double*,double*,double*)const" access="private"/> -->
	<modify-function signature="getContentsMargins(double*,double*,double*,double*)const" remove="all"/>
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class Subclass_of_QGraphicsLayoutItem___" quote-before-line="}// class"/>
        </inject-code>
    </object-type>
  <interface-type name="QGraphicsLayoutItem" delete-in-main-thread="yes">
  	<modify-function signature="setExtension(QGraphicsItem::Extension,QVariant)" remove="all"/>
	<modify-function signature="supportsExtension(QGraphicsItem::Extension)const" remove="all"/>
	<modify-function signature="getContentsMargins(double*,double*,double*,double*)const" remove="all"/>
  <!--
    <modify-function signature="setParentLayoutItem(QGraphicsLayoutItem*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcParentLayoutItem"/>
        </modify-argument>
    </modify-function>
  
        <modify-function signature="getContentsMargins(double*,double*,double*,double*)const" access="private"/>
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class Subclass_of_QGraphicsLayoutItem___" quote-before-line="}// class"/>
        </inject-code>
        <inject-code class="interface">
            public QMarginsF getContentsMargins();
        </inject-code>  
    -->
    </interface-type>
 
  <object-type name="QGraphicsLinearLayout" delete-in-main-thread="yes">
    <modify-function signature="addItem(QGraphicsLayoutItem*)">
        <modify-argument index="1">
            <reference-count action="add" variable-name="__rcItems"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertItem(int,QGraphicsLayoutItem*)">
        <modify-argument index="2">
            <reference-count action="add" variable-name="__rcItems"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="removeItem(QGraphicsLayoutItem*)">
        <modify-argument index="1">
            <reference-count action="remove" variable-name="__rcItems"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setAlignment(QGraphicsLayoutItem*,QFlags&lt;Qt::AlignmentFlag&gt;)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setStretchFactor(QGraphicsLayoutItem*,int)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QGraphicsProxyWidget">
    <modify-function signature="getContentsMargins(double*,double*,double*,double*)const" remove="all" />  
    <!--
    <modify-function signature="setWidget(QWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
        <inject-code>
            <argument-map index="1" meta-name="%1"/>
            if (%1 != null)
                %1.disableGarbageCollection();
            else if (widget() != null)
                widget().reenableGarbageCollection();
        </inject-code>
    </modify-function>
    -->
    </object-type> <!-- a QObject so main-thread delete redundant -->
  <object-type name="QGraphicsWidget">  <!-- a QObject so main-thread delete redundant -->
    <!-- Duplicate function to QObject::children() to override accidental shadowing which is not present in Jambi -->
    <modify-function signature="children()const" remove="all"/>
    <modify-function signature="setLayout(QGraphicsLayout*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcLayout"/>
        </modify-argument>
    </modify-function>

    <modify-function signature="changeEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="closeEvent(QCloseEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="grabKeyboardEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="grabMouseEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="hideEvent(QHideEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="moveEvent(QGraphicsSceneMoveEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="paintWindowFrame(QPainter*,const QStyleOptionGraphicsItem*,QWidget*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="resizeEvent(QGraphicsSceneResizeEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="showEvent(QShowEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="ungrabKeyboardEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="ungrabMouseEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>
    <modify-function signature="windowFrameEvent(QEvent*)">
        <modify-argument index="1" invalidate-after-use="yes"/>
    </modify-function>

    <modify-function signature="setStyle(QStyle*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcStyle"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setTabOrder(QGraphicsWidget*,QGraphicsWidget*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
        <modify-argument index="2">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  <!--
        <modify-function signature="getContentsMargins(double*,double*,double*,double*)const" access="private"/>
        <modify-function signature="getWindowFrameMargins(double*,double*,double*,double*)const" access="private"/>
   
        <inject-code>
            <import-file name="typesystem_gui-java.java" quote-after-line="class QGraphicsWidget___" quote-before-line="}// class"/>
            <import-file name="typesystem_gui-java.java" quote-after-line="class Subclass_of_QGraphicsLayoutItem___" quote-before-line="}// class"/>
        </inject-code>
    -->
        <modify-function signature="initStyleOption(QStyleOption*)const">
	    <!--
            <modify-argument index="1">
                <replace-type modified-type="qt.gui.QStyleOption"/>
                <conversion-rule class="shell">
                    jobject %out = qtjambi_from_object(__jni_env, %in, "QStyleOption", "com/trolltech/qt/gui/", "Lcom_trolltech_qt_gui_QStyleOption_2", false);
                    jobject __tmp = %out;
                </conversion-rule>
                <conversion-rule class="native">
                    QStyleOption *%out = (QStyleOption *) qtjambi_to_object(__jni_env, %in);
                </conversion-rule>
            </modify-argument>
            <modify-argument index="return">
                <conversion-rule class="shell">
                    // Make sure the java object is not usable after this, since
                    // the QStyleOption* may be deleted at any time.
                    qtjambi_invalidate_object(__jni_env, __tmp);
                    __tmp = 0;
                </conversion-rule>
            </modify-argument>
	    -->
        </modify-function>

        <modify-function signature="paintWindowFrame(QPainter*,const QStyleOptionGraphicsItem*,QWidget*)">
	<!--
            <modify-argument index="2">
                <conversion-rule class="shell">
                    jobject %out = qtjambi_from_object(__jni_env, %in, "QStyleOptionGraphicsItem", "com/trolltech/qt/gui/", "Lcom_trolltech_qt_gui_QStyleOption_2", true);
                </conversion-rule>
                <conversion-rule class="native">
                    const QStyleOptionGraphicsItem *%out = (QStyleOptionGraphicsItem *) qtjambi_to_object(__jni_env, %in);
                </conversion-rule>
                <replace-type modified-type="qt.gui.QStyleOptionGraphicsItem"/>
            </modify-argument>
	 -->
        </modify-function>

    </object-type>
  <object-type name="QPlainTextDocumentLayout"/>
  <object-type name="QPlainTextEdit">
    <modify-function signature="setDocument(QTextDocument*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcDocument"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="insertFromMimeData(const QMimeData*)">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
  </object-type>
  <object-type name="QPrintPreviewDialog">
        <modify-function signature="open(QObject *, const char *)" remove="all"/> <!-- # TODO -->
  </object-type>
  <object-type name="QPrintPreviewWidget"/>
  <object-type name="QStyledItemDelegate">
    <modify-function signature="setItemEditorFactory(QItemEditorFactory*)">
        <modify-argument index="1">
            <reference-count action="set" variable-name="__rcItemEditorFactory"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setEditorData(QWidget*,QModelIndex)const">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
    <modify-function signature="setModelData(QWidget*,QAbstractItemModel*,QModelIndex)const">
        <modify-argument index="1">
            <reference-count action="ignore"/>
        </modify-argument>
    </modify-function>
<!--  
        <modify-function signature="initStyleOption(QStyleOptionViewItem*,QModelIndex)const">
            <modify-argument index="1">
                <conversion-rule class="shell">
                    jobject %out = qtjambi_from_object(__jni_env, %in, "QStyleOptionViewItem", "com/trolltech/qt/gui/", "Lcom_trolltech_qt_gui_QStyleOption_2", false);
                </conversion-rule>
                <conversion-rule class="native">
                    QStyleOptionViewItem *%out = (QStyleOptionViewItem *) qtjambi_to_object(__jni_env, %in);
                </conversion-rule>
                <replace-type modified-type="qt.gui.QStyleOptionViewItem"/>
            </modify-argument>
        </modify-function>
        -->
    </object-type>

  <interface-type name="QAccessibleFactoryInterface" java-name="QAbstractAccessibleFactory"/>
  <interface-type name="QIconEngineFactoryInterfaceV2" java-name="QAbstractIconEngineFactoryV2"/>
  <interface-type name="QImageIOHandlerFactoryInterface" java-name="QAbstractImageIOHandlerFactory"/>
  <interface-type name="QInputContextFactoryInterface" java-name="QAbstractInputContextFactory"/>
  <interface-type name="QStyleFactoryInterface" java-name="QAbstractStyleFactory"/>
  <interface-type name="QTextCodecFactoryInterface" java-name="QAbstractTextCodecFactory"/>
  <interface-type name="QPictureFormatInterface" java-name="QAbstractPictureFormat">
<!--        <modify-function signature="loadPicture(QString,QString,QPicture*)">
            <modify-argument index="3">
                <replace-type modified-type="QPicture"/>
                <conversion-rule class="shell">
                    jobject %out = qtjambi_from_object(__jni_env, %in, "QPicture", "com/trolltech/qt/gui/", false);
                    jobject __tmp = %out;
                </conversion-rule>
                <conversion-rule class="native">
                    QPicture *%out = (QPicture *) qtjambi_to_object(__jni_env, %in);
                </conversion-rule>
            </modify-argument>
            <modify-argument index="return">
                <conversion-rule class="shell">
                    // Make sure the java object is not usable after this, since
                    // the QPicture* may be deleted at any time.
                    qtjambi_invalidate_object(__jni_env, __tmp);
                    __tmp = 0;
                    bool %out = (bool) %in;
                </conversion-rule>
                <conversion-rule class="native">
                    jboolean %out = (jboolean) %in;
                </conversion-rule>
            </modify-argument>
        </modify-function>-->
    </interface-type>

  <object-type name="QIconEnginePluginV2"/>
  <object-type name="QAccessiblePlugin"/>
  <object-type name="QImageIOPlugin"/>
  <object-type name="QInputContextPlugin"/>
  <object-type name="QPictureFormatPlugin"/>
  <object-type name="QStylePlugin"/>
  <object-type name="QTextCodecPlugin"/>

  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'QPixmap::QPixmap', unmatched parameter type 'QPixmapData*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping * unmatched *type '*Private&amp;'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping * unmatched *type '*Private\*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping * unmatched *type '*Private const\*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping * unmatched *type 'QTextEngine\*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping * unmatched *type 'QFontEngine\*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping * unmatched *type 'QPixmap::Type'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping * unmatched *type 'QInputDialog::Type'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping * unmatched *type 'QTextFrameLayoutData\*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping * unmatched *type 'QAbstractUndoItem\*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping * unmatched *type '*QImageTextKeyLang*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: non-public function '*' in interface '*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: visibility of function '*' modified in class '*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: hiding of function '*' in class '*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: unsupported default value 'QVector&lt;FormatRange&gt;()' of argument in function '*', class '*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: unsupported default value 'QVariantList()' of argument in function '*', class '*'"/>
  <suppress-warning text="WARNING(CppImplGenerator) :: protected function '*' in final class '*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'QTextLayout::QTextLayout', unmatched parameter type 'QTextEngine*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: unsupported default value of argument in function 'doAction', class 'QAccessibleInterface'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'QFileDialog::QFileDialog', unmatched parameter type 'QFileDialogArgs const&amp;'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: unsupported default value '0., 0., 1000000000., 1000000000.' of argument in function 'update', class 'QAbstractTextDocumentLayout'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'QWidget::windowSurface', unmatched return type 'QWindowSurface*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'QWidget::setWindowSurface', unmatched parameter type 'QWindowSurface*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: enum 'QStyleOption::StyleOptionType' does not have a type entry or is not an enum"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: unhandled enum value: ~FlagMask in QMessageBox::StandardButton"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: unmatched enum ~FlagMask"/>
  <suppress-warning text="WARNING(MetaInfoGenerator) :: class 'QGraphicsSceneEvent' inherits from polymorphic class 'QEvent', but has no polymorphic id set"/>
  <suppress-warning text="WARNING(MetaInfoGenerator) :: class 'QInputEvent' inherits from polymorphic class 'QEvent', but has no polymorphic id set"/>
  <suppress-warning text="WARNING(JavaGenerator) :: either add or remove specified for reference count variable '__rcMenus' in 'qt.gui.QMenu' but not both"/>
  <suppress-warning text="WARNING(JavaGenerator) :: either add or remove specified for reference count variable '__rcMenus' in 'qt.gui.QMenuBar' but not both"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QBrush' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QTextFrame_iterator' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QRegion' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QPolygon' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QTextTableCell' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QTextLength' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QPalette' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QTextBlock_iterator' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QTextBlock' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QTextCursor' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QFont' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QMatrix' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QPen' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QColor' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QTransform' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QPainterPath_Element' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QPainterPath' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QItemSelection' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QKeySequence' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QLine' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QPolygonF' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QSizePolicy' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QTextFragment' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QFontMetrics' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QGradient' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QFontMetricsF' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QTextFormat' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QLineF' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QImage' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QNetworkCookie' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QNetworkRequest' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: skipping function 'QPixmap::pixmapData', unmatched return type 'QPixmapData*'"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: object type 'QAccessible' extended by interface type 'QAbstractAccessibleFactory'. The resulting API will be less expressive than the original."/>

  <suppress-warning text="WARNING(MetaJavaBuilder) :: Class 'QTextOption_Tab' has equals operators but no qHash() function"/>
  <suppress-warning text="WARNING(MetaJavaBuilder) :: Rejected enum has no alternative...: QPalette::NColorRoles"/>

</typesystem>