view generator/typesystem_gui.xml @ 308:2485419c5c63 signals

merge with 299
author eldar_ins@eldar-laptop
date Wed, 23 Dec 2009 04:45:55 +0500
parents 91ed8edd442e
children 8a0cf14e3419
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() const {
            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>