# HG changeset patch # User eldar # Date 1242493926 0 # Node ID cf8a415f3f3251322243636a0a94525a75f74509 # Parent a293cd68d56c4ffae73466419e270ac95ac93c8f gui package is fully wrapped now. lots of fixes in the generator diff -r a293cd68d56c -r cf8a415f3f32 Makefile --- a/Makefile Fri May 15 18:57:36 2009 +0000 +++ b/Makefile Sat May 16 17:12:06 2009 +0000 @@ -135,7 +135,7 @@ cd generator && qmake && $(MAKE) dgen: make_gen - cd generator && $(GEN) $(GEN_OPT) --d-target=$(D_TARGET) --output-directory=../ qtjambi_masterinclude.h build_opengl.txt + cd generator && $(GEN) $(GEN_OPT) --d-target=$(D_TARGET) --output-directory=../ qtjambi_masterinclude.h build_gui.txt ## DGenerator ## end mkdir: diff -r a293cd68d56c -r cf8a415f3f32 build/core.makefile --- a/build/core.makefile Fri May 15 18:57:36 2009 +0000 +++ b/build/core.makefile Sat May 16 17:12:06 2009 +0000 @@ -26,40 +26,47 @@ ## Classes. ## TODO: use list that genareted by dgen. core_classes = \ - ArrayOps \ - QChildEvent \ - QCoreApplication \ - QEvent \ - QEventLoop \ - QObject \ - QTimerEvent \ - QTranslator \ - QPoint \ + ArrayOps \ + QChildEvent \ + QCoreApplication \ + QEvent \ + QEventLoop \ + QObject \ + QTimerEvent \ + QTranslator \ + QPoint \ QPointF \ QRect \ QRectF \ QByteArray \ - QLocale \ - QSize \ - QSizeF \ - QDataStream \ + QLocale \ + QSize \ + QSizeF \ + QDataStream \ QLine \ QLineF \ - QMimeData \ - QIODevice \ - QDateTime \ - QDate \ - QTime \ - QVariant \ - QBitArray \ - QRegExp \ - QUrl \ - QModelIndex \ - QAbstractItemModel \ - QAbstractFileEngine \ - QFile \ - QDir \ - QFileInfo \ - QTextStream \ - QString \ - QTimer \ No newline at end of file + QMimeData \ + QIODevice \ + QDateTime \ + QDate \ + QTime \ + QVariant \ + QBitArray \ + QRegExp \ + QUrl \ + QModelIndex \ + QAbstractItemModel \ + QAbstractFileEngine \ + QFile \ + QDir \ + QFileInfo \ + QTextStream \ + QString \ + QTimer \ + QTextCodec \ + QTextCodec_ConverterState \ + QTextEncoder \ + QTextDecoder \ + QTimeLine \ + QAbstractFactory \ + QAbstractListModel \ No newline at end of file diff -r a293cd68d56c -r cf8a415f3f32 build/core.txt --- a/build/core.txt Fri May 15 18:57:36 2009 +0000 +++ b/build/core.txt Sat May 16 17:12:06 2009 +0000 @@ -18,30 +18,37 @@ set (d_generated_files core/Qt) ## Classes. set (classes - QChildEvent - QCoreApplication - QEvent - QEventLoop - QObject - QTimerEvent - QTranslator - QByteArray - QLocale - QDataStream - QMimeData - QIODevice - QDateTime - QDate - QTime - QBitArray - QRegExp - QUrl - QAbstractItemModel - QAbstractFileEngine - QFile - QDir - QFileInfo - QTextStream - QTimer + QChildEvent + QCoreApplication + QEvent + QEventLoop + QObject + QTimerEvent + QTranslator + QByteArray + QLocale + QDataStream + QMimeData + QIODevice + QDateTime + QDate + QTime + QBitArray + QRegExp + QUrl + QAbstractItemModel + QAbstractFileEngine + QFile + QDir + QFileInfo + QTextStream + QTimer + QTextCodec + QTextCodec_ConverterState + QTextEncoder + QTextDecoder + QTimeLine + QAbstractFactory + QAbstractListModel ) diff -r a293cd68d56c -r cf8a415f3f32 build/gui.makefile --- a/build/gui.makefile Fri May 15 18:57:36 2009 +0000 +++ b/build/gui.makefile Sat May 16 17:12:06 2009 +0000 @@ -16,214 +16,350 @@ ## Classes. ## TODO: use list that generated by dgen. gui_classes = \ - ArrayOps \ - QPushButton \ - QFileIconProvider \ - QPaintDevice \ - QPicture \ - QPixmap \ - QImage \ - QBitmap \ - QStyle \ - QStyleOption \ - QDesktopWidget \ - QMenu \ - QAction \ - QDropEvent \ - QInputContext \ - QWidget \ - QApplication \ - QIcon \ - QIconEngine \ - QPalette \ - QSizePolicy \ - QRegion \ - QFontMetrics \ - QCursor \ - QFont \ - QClipboard \ - QSessionManager \ - QPainterPath \ - QPainterPath_Element \ - QPaintEvent \ - QTransform \ - QMatrix \ - QPainter \ - QDragLeaveEvent \ - QPolygon \ - QInputEvent \ - QDragEnterEvent \ - QKeyEvent \ - QHideEvent \ - QWheelEvent \ - QMoveEvent \ - QActionGroup \ - QActionEvent \ - QFocusEvent \ - QIconEngineV2 \ - QFontInfo \ - QStyleHintReturn \ - QColor \ - QDragMoveEvent \ - QStyleOptionMenuItem \ - QTabletEvent \ - QShowEvent \ - QResizeEvent \ - QBrush \ - QInputMethodEvent \ - QContextMenuEvent \ - QStyleOptionComplex \ - QMouseEvent \ - QHelpEvent \ - QTextFormat \ - QKeySequence \ - QCloseEvent \ - QGradient \ - QTextItem \ - QTextOption \ - QPolygonF \ - QPen \ - QTextCharFormat \ - QTextListFormat \ - QTextTableFormat \ - QTextLength \ - QTextFrameFormat \ - QTextTableCellFormat \ - QTextBlockFormat \ - QTextImageFormat \ - QFrame \ - QLabel \ - QAbstractButton \ - QMovie \ - QCheckBox \ - QRadioButton \ - QToolButton \ - QStyleOptionButton \ - QStyleOptionToolButton \ - QStyleOptionToolBar \ - QStyleOptionToolBox \ - QStyleOptionToolBoxV2 \ - QStyleOptionSlider \ - QStyleOptionViewItem \ - QStyleOptionHeader \ - QStyleOptionDockWidget \ - QStyleOptionTab \ - QButtonGroup \ - QLCDNumber \ - QAbstractSlider \ - QDial \ - QSlider \ - QScrollBar \ - QPaintEngine \ - QSpacerItem \ - QLayout \ - QLayoutItem \ - QPaintEngineState \ - QBoxLayout \ - QHBoxLayout \ - QVBoxLayout \ - QFormLayout \ - QGridLayout \ - QStackedLayout \ - QAbstractScrollArea \ - QAbstractItemDelegate \ - QAbstractItemView \ - QTreeView \ - QTableView \ - QListView \ - QHeaderView \ - QItemSelection \ - QItemSelectionModel \ - QItemSelectionRange \ - QDirModel \ - QSplitter \ - QSplitterHandle \ - QListWidget \ - QListWidgetItem \ - QMainWindow \ - QMenuBar \ - QToolBar \ - QMessageBox \ - QDockWidget \ - QDialog \ - QStatusBar \ - QTabWidget \ - QTabBar \ - QImageIOHandler \ - QImageReader \ - QTextFrame_iterator \ - QTextBlock_iterator \ - QPrinter \ - QTextLine \ - QTextEdit \ - QTextCursor \ - QTextFrame \ - QTextObject \ - QTextBlock \ - QTextDocument \ - QPrinterInfo \ - QTextList \ - QTextLayout \ - QTextBlockUserData \ - QTextDocumentFragment \ - QTextTable \ - QAbstractTextDocumentLayout \ - QTextBlockGroup \ - QTextObjectInterface \ - QTextInlineObject \ - QAbstractTextDocumentLayout_PaintContext \ - QTextLayout_FormatRange \ - QTextFragment \ - QTextTableCell \ - QPrintEngine \ - QStyleOptionTabWidgetFrame \ - QComboBox \ - QValidator \ - QCompleter \ - QLineEdit \ - QStyleOptionComboBox \ - QStyleOptionFrame \ - QFileDialog \ - QAbstractProxyModel \ - QGraphicsItem \ - QGraphicsItemGroup \ - QGraphicsWidget \ - QGraphicsLayout \ - QGraphicsScene \ - QGraphicsSimpleTextItem \ - QGraphicsRectItem \ - QGraphicsPolygonItem \ - QGraphicsPixmapItem \ - QGraphicsPathItem \ - QGraphicsLineItem \ - QGraphicsEllipseItem \ - QGraphicsLayoutItem \ - QAbstractGraphicsShapeItem \ - QGraphicsTextItem \ - QGraphicsProxyWidget \ - QGraphicsSceneEvent \ - QGraphicsSceneWheelEvent \ - QGraphicsSceneContextMenuEvent \ - QGraphicsSceneMouseEvent \ - QGraphicsSceneResizeEvent \ - QStyleOptionGraphicsItem \ - QGraphicsSceneMoveEvent \ - QGraphicsSceneHoverEvent \ - QGraphicsSceneDragDropEvent \ - QGraphicsSceneHelpEvent \ - QGraphicsView \ - QTableWidgetSelectionRange \ - QStandardItem \ - QUndoStack \ - QTreeWidgetItem \ - QTreeWidget \ - QTextEdit_ExtraSelection \ - QTableWidgetItem \ - QTableWidget \ - QTextOption_Tab \ - QMdiSubWindow \ - QInputMethodEvent_Attribute \ - QMdiArea \ - QUndoCommand \ - QStandardItemModel \ - QDialogButtonBox \ No newline at end of file +ArrayOps \ +QAbstractAccessibleFactory \ +QAbstractButton \ +QAbstractGraphicsShapeItem \ +QAbstractIconEngineFactoryV2 \ +QAbstractImageIOHandlerFactory \ +QAbstractInputContextFactory \ +QAbstractItemDelegate \ +QAbstractItemView \ +QAbstractPageSetupDialog \ +QAbstractPictureFormat \ +QAbstractPrintDialog \ +QAbstractProxyModel \ +QAbstractScrollArea \ +QAbstractSlider \ +QAbstractSpinBox \ +QAbstractStyleFactory \ +QAbstractTableModel \ +QAbstractTextCodecFactory \ +QAbstractTextDocumentLayout_PaintContext \ +QAbstractTextDocumentLayout_Selection \ +QAbstractTextDocumentLayout \ +QAccessible2Interface \ +QAccessibleBridge \ +QAccessibleEvent \ +QAccessibleInterfaceEx \ +QAccessibleInterface \ +QAccessibleObjectEx \ +QAccessibleObject \ +QAccessiblePlugin \ +QAccessible \ +QAccessibleWidgetEx \ +QAccessibleWidget \ +QActionEvent \ +QActionGroup \ +QAction \ +QApplication \ +QBitmap \ +QBoxLayout \ +QBrush \ +QButtonGroup \ +QCalendarWidget \ +QCDEStyle \ +QCheckBox \ +QCleanlooksStyle \ +QClipboardEvent \ +QClipboard \ +QCloseEvent \ +QColorDialog \ +QColormap \ +QColor \ +QColumnView \ +QComboBox \ +QCommandLinkButton \ +QCommonStyle \ +QCompleter \ +QConicalGradient \ +QContextMenuEvent \ +QCursor \ +QDataWidgetMapper \ +QDateEdit \ +QDateTimeEdit \ +QDesktopServices \ +QDesktopWidget \ +QDialogButtonBox \ +QDialog \ +QDial \ +QDirModel \ +QDockWidget \ +QDoubleSpinBox \ +QDoubleValidator \ +QDragEnterEvent \ +QDragLeaveEvent \ +QDragMoveEvent \ +QDragResponseEvent \ +QDrag \ +QDropEvent \ +QErrorMessage \ +QFileDialog \ +QFileIconProvider \ +QFileOpenEvent \ +QFileSystemModel \ +QFocusEvent \ +QFocusFrame \ +QFontComboBox \ +QFontDatabase \ +QFontDialog \ +QFontInfo \ +QFontMetricsF \ +QFontMetrics \ +QFont \ +QFormLayout \ +QFrame \ +QGradient \ +QGraphicsEllipseItem \ +QGraphicsGridLayout \ +QGraphicsItemAnimation \ +QGraphicsItemGroup \ +QGraphicsItem \ +QGraphicsLayoutItem \ +QGraphicsLayout \ +QGraphicsLinearLayout \ +QGraphicsLineItem \ +QGraphicsPathItem \ +QGraphicsPixmapItem \ +QGraphicsPolygonItem \ +QGraphicsProxyWidget \ +QGraphicsRectItem \ +QGraphicsSceneContextMenuEvent \ +QGraphicsSceneDragDropEvent \ +QGraphicsSceneEvent \ +QGraphicsSceneHelpEvent \ +QGraphicsSceneHoverEvent \ +QGraphicsSceneMouseEvent \ +QGraphicsSceneMoveEvent \ +QGraphicsSceneResizeEvent \ +QGraphicsScene \ +QGraphicsSceneWheelEvent \ +QGraphicsSimpleTextItem \ +QGraphicsTextItem \ +QGraphicsView \ +QGraphicsWidget \ +QGridLayout \ +QGroupBox \ +QHBoxLayout \ +QHeaderView \ +QHelpEvent \ +QHideEvent \ +QHoverEvent \ +QIconDragEvent \ +QIconEnginePluginV2 \ +QIconEngine \ +QIconEngineV2 \ +QIcon \ +QImageIOHandler \ +QImageIOPlugin \ +QImageReader \ +QImage \ +QImageWriter \ +QInputContextFactory \ +QInputContextPlugin \ +QInputContext \ +QInputDialog \ +QInputEvent \ +QInputMethodEvent_Attribute \ +QInputMethodEvent \ +QIntValidator \ +QItemDelegate \ +QItemEditorCreatorBase \ +QItemEditorFactory \ +QItemSelectionModel \ +QItemSelectionRange \ +QItemSelection \ +QKeyEvent \ +QKeySequence \ +QLabel \ +QLayoutItem \ +QLayout \ +QLCDNumber \ +QLinearGradient \ +QLineEdit \ +QListView \ +QListWidgetItem \ +QListWidget \ +QMainWindow \ +QMatrix \ +QMdiArea \ +QMdiSubWindow \ +QMenuBar \ +QMenu \ +QMessageBox \ +QMotifStyle \ +QMouseEvent \ +QMoveEvent \ +QMovie \ +QPageSetupDialog \ +QPaintDevice \ +QPaintEngine \ +QPaintEngineState \ +QPainterPath_Element \ +QPainterPath \ +QPainterPathStroker \ +QPainter \ +QPaintEvent \ +QPalette \ +QPen \ +QPictureFormatPlugin \ +QPictureIO \ +QPicture \ +QPixmapCache \ +QPixmap \ +QPlainTextDocumentLayout \ +QPlainTextEdit \ +QPlastiqueStyle \ +QPolygonF \ +QPolygon \ +QPrintDialog \ +QPrintEngine \ +QPrinterInfo \ +QPrinter \ +QPrintPreviewDialog \ +QPrintPreviewWidget \ +QProgressBar \ +QProgressDialog \ +QProxyModel \ +QPushButton \ +QRadialGradient \ +QRadioButton \ +QRegExpValidator \ +QRegion \ +QResizeEvent \ +QRubberBand \ +QScrollArea \ +QScrollBar \ +QSessionManager \ +QShortcutEvent \ +QShortcut \ +QShowEvent \ +QSizeGrip \ +QSizePolicy \ +QSlider \ +QSortFilterProxyModel \ +QSound \ +QSpacerItem \ +QSpinBox \ +QSplashScreen \ +QSplitterHandle \ +QSplitter \ +QStackedLayout \ +QStackedWidget \ +QStandardItemModel \ +QStandardItem \ +QStatusBar \ +QStatusTipEvent \ +QStringListModel \ +QStyledItemDelegate \ +QStyleFactory \ +QStyleHintReturnMask \ +QStyleHintReturn \ +QStyleHintReturnVariant \ +QStyleOptionButton \ +QStyleOptionComboBox \ +QStyleOptionComplex \ +QStyleOptionDockWidget \ +QStyleOptionDockWidgetV2 \ +QStyleOptionFocusRect \ +QStyleOptionFrame \ +QStyleOptionFrameV2 \ +QStyleOptionGraphicsItem \ +QStyleOptionGroupBox \ +QStyleOptionHeader \ +QStyleOptionMenuItem \ +QStyleOptionProgressBar \ +QStyleOptionProgressBarV2 \ +QStyleOptionRubberBand \ +QStyleOption \ +QStyleOptionSizeGrip \ +QStyleOptionSlider \ +QStyleOptionSpinBox \ +QStyleOptionTabBarBase \ +QStyleOptionTab \ +QStyleOptionTabV2 \ +QStyleOptionTabWidgetFrame \ +QStyleOptionTitleBar \ +QStyleOptionToolBar \ +QStyleOptionToolBox \ +QStyleOptionToolBoxV2 \ +QStyleOptionToolButton \ +QStyleOptionViewItem \ +QStyleOptionViewItemV2 \ +QStyleOptionViewItemV3 \ +QStyleOptionViewItemV4 \ +QStylePainter \ +QStylePlugin \ +QStyle \ +QSyntaxHighlighter \ +QSystemTrayIcon \ +QTabBar \ +QTabletEvent \ +QTableView \ +QTableWidgetItem \ +QTableWidgetSelectionRange \ +QTableWidget \ +QTabWidget \ +QTextBlockFormat \ +QTextBlockGroup \ +QTextBlock_iterator \ +QTextBlock \ +QTextBlockUserData \ +QTextBrowser \ +QTextCharFormat \ +QTextCodecPlugin \ +QTextCursor \ +QTextDocumentFragment \ +QTextDocument \ +QTextEdit_ExtraSelection \ +QTextEdit \ +QTextFormat \ +QTextFragment \ +QTextFrameFormat \ +QTextFrame_iterator \ +QTextFrame \ +QTextImageFormat \ +QTextInlineObject \ +QTextItem \ +QTextLayout_FormatRange \ +QTextLayout \ +QTextLength \ +QTextLine \ +QTextListFormat \ +QTextList \ +QTextObjectInterface \ +QTextObject \ +QTextOption \ +QTextOption_Tab \ +QTextTableCellFormat \ +QTextTableCell \ +QTextTableFormat \ +QTextTable \ +QTimeEdit \ +QToolBarChangeEvent \ +QToolBar \ +QToolBox \ +QToolButton \ +QToolTip \ +QTransform \ +QTreeView \ +QTreeWidgetItemIterator \ +QTreeWidgetItem \ +QTreeWidget \ +QUndoCommand \ +QUndoGroup \ +QUndoStack \ +QUndoView \ +QValidator \ +QVBoxLayout \ +QWhatsThisClickedEvent \ +QWhatsThis \ +QWheelEvent \ +QWidgetAction \ +QWidgetItem \ +QWidget \ +QWindowsStyle \ +QWindowStateChangeEvent \ +QWizardPage \ +QWizard \ +QWorkspace \ No newline at end of file diff -r a293cd68d56c -r cf8a415f3f32 build/gui.txt --- a/build/gui.txt Fri May 15 18:57:36 2009 +0000 +++ b/build/gui.txt Sat May 16 17:12:06 2009 +0000 @@ -1,213 +1,349 @@ set(required Core) set(classes - QPushButton - QFileIconProvider - QPaintDevice - QPicture - QPixmap - QImage - QBitmap - QStyle - QStyleOption - QDesktopWidget - QMenu - QAction - QDropEvent - QInputContext - QWidget - QApplication - QIcon - QIconEngine - QPalette - QSizePolicy - QRegion - QFontMetrics - QCursor - QFont - QClipboard - QSessionManager - QPainterPath - QPainterPath_Element - QPaintEvent - QTransform - QMatrix - QPainter - QDragLeaveEvent - QPolygon - QInputEvent - QDragEnterEvent - QKeyEvent - QHideEvent - QWheelEvent - QMoveEvent - QActionGroup - QActionEvent - QFocusEvent - QIconEngineV2 - QFontInfo - QStyleHintReturn - QColor - QDragMoveEvent - QStyleOptionMenuItem - QTabletEvent - QShowEvent - QResizeEvent - QBrush - QInputMethodEvent - QContextMenuEvent - QStyleOptionComplex - QMouseEvent - QHelpEvent - QTextFormat - QKeySequence - QCloseEvent - QGradient - QTextItem - QTextOption - QPolygonF - QPen - QTextCharFormat - QTextListFormat - QTextTableFormat - QTextLength - QTextFrameFormat - QTextTableCellFormat - QTextBlockFormat - QTextImageFormat - QFrame - QLabel - QAbstractButton - QMovie - QCheckBox - QRadioButton - QToolButton - QStyleOptionButton - QStyleOptionToolButton - QStyleOptionToolBar - QStyleOptionToolBox - QStyleOptionToolBoxV2 - QStyleOptionSlider - QStyleOptionViewItem - QStyleOptionHeader - QStyleOptionDockWidget - QStyleOptionTab - QButtonGroup - QLCDNumber - QAbstractSlider - QDial - QSlider - QScrollBar - QPaintEngine - QSpacerItem - QLayout - QLayoutItem - QPaintEngineState - QBoxLayout - QHBoxLayout - QVBoxLayout - QFormLayout - QGridLayout - QStackedLayout - QAbstractScrollArea - QAbstractItemDelegate - QAbstractItemView - QTreeView - QTableView - QListView - QHeaderView - QItemSelection - QItemSelectionModel - QItemSelectionRange - QDirModel - QSplitter - QSplitterHandle - QListWidget - QListWidgetItem - QMainWindow - QMenuBar - QToolBar - QMessageBox - QDockWidget - QDialog - QStatusBar - QTabWidget - QTabBar - QImageIOHandler - QImageReader - QTextFrame_iterator - QTextBlock_iterator - QPrinter - QTextLine - QTextEdit - QTextCursor - QTextFrame - QTextObject - QTextBlock - QTextDocument - QPrinterInfo - QTextList - QTextLayout - QTextBlockUserData - QTextDocumentFragment - QTextTable - QAbstractTextDocumentLayout - QTextBlockGroup - QTextObjectInterface - QTextInlineObject - QAbstractTextDocumentLayout_PaintContext - QTextLayout_FormatRange - QTextFragment - QTextTableCell - QPrintEngine - QStyleOptionTabWidgetFrame - QComboBox - QValidator - QCompleter - QLineEdit - QStyleOptionComboBox - QStyleOptionFrame - QFileDialog - QAbstractProxyModel - QGraphicsItem - QGraphicsItemGroup - QGraphicsWidget - QGraphicsLayout - QGraphicsScene - QGraphicsSimpleTextItem - QGraphicsRectItem - QGraphicsPolygonItem - QGraphicsPixmapItem - QGraphicsPathItem - QGraphicsLineItem - QGraphicsEllipseItem - QGraphicsLayoutItem - QAbstractGraphicsShapeItem - QGraphicsTextItem - QGraphicsProxyWidget - QGraphicsSceneEvent - QGraphicsSceneWheelEvent - QGraphicsSceneContextMenuEvent - QGraphicsSceneMouseEvent - QGraphicsSceneResizeEvent - QStyleOptionGraphicsItem - QGraphicsSceneMoveEvent - QGraphicsSceneHoverEvent - QGraphicsSceneDragDropEvent - QGraphicsSceneHelpEvent - QGraphicsView - QTableWidgetSelectionRange - QStandardItem - QUndoStack - QTreeWidgetItem - QTreeWidget - QTextEdit_ExtraSelection - QTableWidgetItem - QTableWidget - QTextOption_Tab - QMdiSubWindow - QInputMethodEvent_Attribute - QMdiArea - QUndoCommand - QStandardItemModel + QAbstractAccessibleFactory + QAbstractButton + QAbstractGraphicsShapeItem + QAbstractIconEngineFactoryV2 + QAbstractImageIOHandlerFactory + QAbstractInputContextFactory + QAbstractItemDelegate + QAbstractItemView + QAbstractPageSetupDialog + QAbstractPictureFormat + QAbstractPrintDialog + QAbstractProxyModel + QAbstractScrollArea + QAbstractSlider + QAbstractSpinBox + QAbstractStyleFactory + QAbstractTableModel + QAbstractTextCodecFactory + QAbstractTextDocumentLayout_PaintContext + QAbstractTextDocumentLayout_Selection + QAbstractTextDocumentLayout + QAccessible2Interface + QAccessibleBridge + QAccessibleEvent + QAccessibleInterfaceEx + QAccessibleInterface + QAccessibleObjectEx + QAccessibleObject + QAccessiblePlugin + QAccessible + QAccessibleWidgetEx + QAccessibleWidget + QActionEvent + QActionGroup + QAction + QApplication + QBitmap + QBoxLayout + QBrush + QButtonGroup + QCalendarWidget + QCDEStyle + QCheckBox + QCleanlooksStyle + QClipboardEvent + QClipboard + QCloseEvent + QColorDialog + QColormap + QColor + QColumnView + QComboBox + QCommandLinkButton + QCommonStyle + QCompleter + QConicalGradient + QContextMenuEvent + QCursor + QDataWidgetMapper + QDateEdit + QDateTimeEdit + QDesktopServices + QDesktopWidget QDialogButtonBox + QDialog + QDial + QDirModel + QDockWidget + QDoubleSpinBox + QDoubleValidator + QDragEnterEvent + QDragLeaveEvent + QDragMoveEvent + QDragResponseEvent + QDrag + QDropEvent + QErrorMessage + QFileDialog + QFileIconProvider + QFileOpenEvent + QFileSystemModel + QFocusEvent + QFocusFrame + QFontComboBox + QFontDatabase + QFontDialog + QFontInfo + QFontMetricsF + QFontMetrics + QFont + QFormLayout + QFrame + QGradient + QGraphicsEllipseItem + QGraphicsGridLayout + QGraphicsItemAnimation + QGraphicsItemGroup + QGraphicsItem + QGraphicsLayoutItem + QGraphicsLayout + QGraphicsLinearLayout + QGraphicsLineItem + QGraphicsPathItem + QGraphicsPixmapItem + QGraphicsPolygonItem + QGraphicsProxyWidget + QGraphicsRectItem + QGraphicsSceneContextMenuEvent + QGraphicsSceneDragDropEvent + QGraphicsSceneEvent + QGraphicsSceneHelpEvent + QGraphicsSceneHoverEvent + QGraphicsSceneMouseEvent + QGraphicsSceneMoveEvent + QGraphicsSceneResizeEvent + QGraphicsScene + QGraphicsSceneWheelEvent + QGraphicsSimpleTextItem + QGraphicsTextItem + QGraphicsView + QGraphicsWidget + QGridLayout + QGroupBox + QHBoxLayout + QHeaderView + QHelpEvent + QHideEvent + QHoverEvent + QIconDragEvent + QIconEnginePluginV2 + QIconEngine + QIconEngineV2 + QIcon + QImageIOHandler + QImageIOPlugin + QImageReader + QImage + QImageWriter + QInputContextFactory + QInputContextPlugin + QInputContext + QInputDialog + QInputEvent + QInputMethodEvent_Attribute + QInputMethodEvent + QIntValidator + QItemDelegate + QItemEditorCreatorBase + QItemEditorFactory + QItemSelectionModel + QItemSelectionRange + QItemSelection + QKeyEvent + QKeySequence + QLabel + QLayoutItem + QLayout + QLCDNumber + QLinearGradient + QLineEdit + QListView + QListWidgetItem + QListWidget + QMainWindow + QMatrix + QMdiArea + QMdiSubWindow + QMenuBar + QMenu + QMessageBox + QMotifStyle + QMouseEvent + QMoveEvent + QMovie + QPageSetupDialog + QPaintDevice + QPaintEngine + QPaintEngineState + QPainterPath_Element + QPainterPath + QPainterPathStroker + QPainter + QPaintEvent + QPalette + QPen + QPictureFormatPlugin + QPictureIO + QPicture + QPixmapCache + QPixmap + QPlainTextDocumentLayout + QPlainTextEdit + QPlastiqueStyle + QPolygonF + QPolygon + QPrintDialog + QPrintEngine + QPrinterInfo + QPrinter + QPrintPreviewDialog + QPrintPreviewWidget + QProgressBar + QProgressDialog + QProxyModel + QPushButton + QRadialGradient + QRadioButton + QRegExpValidator + QRegion + QResizeEvent + QRubberBand + QScrollArea + QScrollBar + QSessionManager + QShortcutEvent + QShortcut + QShowEvent + QSizeGrip + QSizePolicy + QSlider + QSortFilterProxyModel + QSound + QSpacerItem + QSpinBox + QSplashScreen + QSplitterHandle + QSplitter + QStackedLayout + QStackedWidget + QStandardItemModel + QStandardItem + QStatusBar + QStatusTipEvent + QStringListModel + QStyledItemDelegate + QStyleFactory + QStyleHintReturnMask + QStyleHintReturn + QStyleHintReturnVariant + QStyleOptionButton + QStyleOptionComboBox + QStyleOptionComplex + QStyleOptionDockWidget + QStyleOptionDockWidgetV2 + QStyleOptionFocusRect + QStyleOptionFrame + QStyleOptionFrameV2 + QStyleOptionGraphicsItem + QStyleOptionGroupBox + QStyleOptionHeader + QStyleOptionMenuItem + QStyleOptionProgressBar + QStyleOptionProgressBarV2 + QStyleOptionRubberBand + QStyleOption + QStyleOptionSizeGrip + QStyleOptionSlider + QStyleOptionSpinBox + QStyleOptionTabBarBase + QStyleOptionTab + QStyleOptionTabV2 + QStyleOptionTabWidgetFrame + QStyleOptionTitleBar + QStyleOptionToolBar + QStyleOptionToolBox + QStyleOptionToolBoxV2 + QStyleOptionToolButton + QStyleOptionViewItem + QStyleOptionViewItemV2 + QStyleOptionViewItemV3 + QStyleOptionViewItemV4 + QStylePainter + QStylePlugin + QStyle + QSyntaxHighlighter + QSystemTrayIcon + QTabBar + QTabletEvent + QTableView + QTableWidgetItem + QTableWidgetSelectionRange + QTableWidget + QTabWidget + QTextBlockFormat + QTextBlockGroup + QTextBlock_iterator + QTextBlock + QTextBlockUserData + QTextBrowser + QTextCharFormat + QTextCodecPlugin + QTextCursor + QTextDocumentFragment + QTextDocument + QTextEdit_ExtraSelection + QTextEdit + QTextFormat + QTextFragment + QTextFrameFormat + QTextFrame_iterator + QTextFrame + QTextImageFormat + QTextInlineObject + QTextItem + QTextLayout_FormatRange + QTextLayout + QTextLength + QTextLine + QTextListFormat + QTextList + QTextObjectInterface + QTextObject + QTextOption + QTextOption_Tab + QTextTableCellFormat + QTextTableCell + QTextTableFormat + QTextTable + QTimeEdit + QToolBarChangeEvent + QToolBar + QToolBox + QToolButton + QToolTip + QTransform + QTreeView + QTreeWidgetItemIterator + QTreeWidgetItem + QTreeWidget + QUndoCommand + QUndoGroup + QUndoStack + QUndoView + QValidator + QVBoxLayout + QWhatsThisClickedEvent + QWhatsThis + QWheelEvent + QWidgetAction + QWidgetItem + QWidget + QWindowsStyle + QWindowStateChangeEvent + QWizardPage + QWizard + QWorkspace ) diff -r a293cd68d56c -r cf8a415f3f32 examples/mainwindows/dockwidgets/build --- a/examples/mainwindows/dockwidgets/build Fri May 15 18:57:36 2009 +0000 +++ b/examples/mainwindows/dockwidgets/build Sat May 16 17:12:06 2009 +0000 @@ -1,4 +1,4 @@ #! /bin/bash #rcc mainwindow.qrc -o mainwindow_rcc.cpp #g++ -c -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/X11R6/include mainwindow_rcc.cpp -dmd main.d mainwindow.d -I../../../ -L-L../../../lib -L-lqtdgui -L-lqtdcore -L-lQtCore -L-lQtGui +dmd main.d mainwindow.d -I../../../ -I../../../qt/d1 -L-L../../../lib -L-lqtdgui -L-lqtdcore -L-lQtCore -L-lQtGui diff -r a293cd68d56c -r cf8a415f3f32 generator/cppgenerator.cpp --- a/generator/cppgenerator.cpp Fri May 15 18:57:36 2009 +0000 +++ b/generator/cppgenerator.cpp Sat May 16 17:12:06 2009 +0000 @@ -123,7 +123,7 @@ // values because wrapper actually contains pointers if ((options & ForcePointer) && actual_indirections == 0 && !type->isPrimitive() && !type->typeEntry()->isStructInD() - && type->name() != "QModelIndex") + && type->name() != "QModelIndex" && !type->isEnum()) actual_indirections = 1; s << QString(actual_indirections, '*'); diff -r a293cd68d56c -r cf8a415f3f32 generator/cppimplgenerator.cpp --- a/generator/cppimplgenerator.cpp Fri May 15 18:57:36 2009 +0000 +++ b/generator/cppimplgenerator.cpp Sat May 16 17:12:06 2009 +0000 @@ -496,10 +496,23 @@ if (!interfaces.isEmpty()) { for (int i=0; iqualifiedCppName() << "* qtd_" << java_class->name() << "_cast_to_" << iface->qualifiedCppName() - << "(" << java_class->name() << " *ptr)" << endl << "{" << endl; + + // in case of renamed class + InterfaceTypeEntry *ite = static_cast(iface->typeEntry()); + QString real_name = ite->origin()->qualifiedCppName(); + + + + /*const TypeEntry* te = TypeDatabase::instance()->findType(); + if(te) + real_name = te->qualifiedCppName(); + else + real_name = iface->qualifiedCppName();*/ + + s << "extern \"C\" DLL_PUBLIC " << real_name << "* qtd_" << java_class->name() << "_cast_to_" << iface->qualifiedCppName() + << "(" << java_class->qualifiedCppName() << " *ptr)" << endl << "{" << endl; Indentation indent(INDENT); - s << INDENT << "return dynamic_cast<"<< iface->qualifiedCppName()<< "*>(ptr);" << endl; + s << INDENT << "return dynamic_cast<" << real_name << "*>(ptr);" << endl; s << "}" << endl << endl; } } @@ -1915,11 +1928,10 @@ if (nativeArgCount > 0) s << "," << endl << " "; - // if has QString argument we have to pass char* and str.length to QString constructor - if (argument->type()->isTargetLangString() - || (argument->type()->typeEntry() && argument->type()->typeEntry()->qualifiedCppName() == "QString")) { - s << QString("char* %1, uint %1_size").arg(arg_name); - } else if (d_type->isContainer()) { + // if QString argument we have to pass DArrat + if ((te && te->qualifiedCppName() == "QString") || d_type->isTargetLangString()) + s << "string " << arg_name; + else if (d_type->isContainer()) { const ContainerTypeEntry *cte = static_cast(te); if(isLinearContainer(cte)) @@ -2109,11 +2121,8 @@ } else { writeFunctionCall(s, qt_object_name, java_function, function_prefix, option, extra_param); -/* qtd - s << INDENT << "QTJAMBI_DEBUG_TRACE(\"(native) -> leaving: " - << java_function_signature << "\");" << endl; - */ } + writeRefArguments(s, java_function); } } if(!java_function->argumentReplaced(0).isEmpty()) { @@ -2124,6 +2133,18 @@ s << endl << endl; } +void CppImplGenerator::writeRefArguments(QTextStream &s, const AbstractMetaFunction *java_function) +{ + AbstractMetaArgumentList arguments = java_function->arguments(); + foreach (const AbstractMetaArgument *argument, arguments) { + AbstractMetaType *d_type = argument->type(); + const TypeEntry *te = d_type->typeEntry(); + if ((te && d_type->isNativePointer() && te->name() == "QString")) + s << QString(" _d_toUtf8(__qt_%1.utf16(), __qt_%1.size(), &%1);").arg(argument->indexedName()) << endl; + } +} + + void CppImplGenerator::writeAssignment(QTextStream &s, const QString &destName, const QString &srcName, const AbstractMetaType *java_type) { @@ -2196,7 +2217,7 @@ s << qt_return_value << ";" << endl; writeQtToJava(s, getter->type(), tmp_name, java_return_value, 0, -1, EnumAsInts); - if (getter->type()->isTargetLangString()) + if (getter->type()->isTargetLangString() || getter->type()->name() == "QModelIndex") ; else if(getter->type()->typeEntry()->isStructInD()) s << INDENT << "return " << tmp_name << ";" << endl; @@ -2250,9 +2271,11 @@ dest = "__qt_object->"; QString src; - if (!argument->type()->isPrimitive() && !argument->type()->typeEntry()->isStructInD()) + if (!argument->type()->isPrimitive() && !argument->type()->typeEntry()->isStructInD()) { src = "__qt_" + argument->indexedName(); - else + } else if (argument->type()->name() == "QModelIndex") { + src = "qtd_to_QModelIndex(" + argument->indexedName() + ")"; + } else src = argument->indexedName(); if (setter->wasPublic()) @@ -2689,7 +2712,7 @@ // empty } else if (java_type->typeEntry() && java_type->typeEntry()->qualifiedCppName() == "QString") { s << INDENT << "QString " << qt_name - << " = " << "QString::fromUtf8(" << java_name << ", " << java_name << "_size);" << endl; + << " = " << QString("QString::fromUtf8((const char *)%1.ptr, %1.length);").arg(java_name) << endl; } else if (java_type->isJObjectWrapper()) { s << INDENT << "JObjectWrapper " << qt_name << " = qtjambi_to_jobjectwrapper(__jni_env, " << java_name << ");" << endl; @@ -2700,16 +2723,18 @@ AbstractMetaType *elementType = java_type->arrayElementType(); // ### Don't assert on wrong array lengths - s << INDENT << "Q_ASSERT(__jni_env->GetArrayLength((jarray) " << java_name << ") == " << java_type->arrayElementCount() << ");" << endl; +// s << INDENT << "Q_ASSERT(__jni_env->GetArrayLength((jarray) " << java_name << ") == " << java_type->arrayElementCount() << ");" << endl; s << INDENT; writeTypeInfo(s, elementType); - s << " " << qt_name << "[" << java_type->arrayElementCount() << "];" << endl; - + s << " *" << qt_name << " = ("; + writeTypeInfo(s, elementType); + s << "*) " << java_name << ";" << endl; +/* s << INDENT << "__jni_env->" << getXxxArrayRegion(elementType) << "( (" << translateType(java_type, options) << ")" << java_name << ", 0, " << java_type->arrayElementCount() << ", " << "(" << translateType(elementType, options) << " *" << ")" << qt_name << ");" << endl; - +*/ } else if (java_type->isArray()) { AbstractMetaType *elementType = java_type->arrayElementType(); @@ -2751,7 +2776,7 @@ } if ((options & EnumAsInts) == 0 && (java_type->isTargetLangEnum() || java_type->isTargetLangFlags())) { - s << "qtjambi_to_enumerator(__jni_env, " << java_name << ");" << endl; + s << java_name << ";" << endl; } else if (options & BoxedPrimitive) { const PrimitiveTypeEntry *pentry = TypeDatabase::instance()->findTargetLangPrimitiveType("int"); @@ -2961,7 +2986,7 @@ << qt_name << ";" << endl; // do nothing } else if (java_type->isArray() && java_type->arrayElementType()->isPrimitive()) { AbstractMetaType *elementType = java_type->arrayElementType(); - +/* qtd s << INDENT << translateType(java_type, option) << " " << java_name << " = __jni_env->" << newXxxArray(elementType) << "(" << java_type->arrayElementCount() << ");" << endl; @@ -2970,7 +2995,8 @@ << ", 0, " << java_type->arrayElementCount() << ", " << "(" << translateType(elementType, option) << " *" << ")" << qt_name << ");" << endl; - +*/ + s << INDENT << translateType(java_type, option) << " " << java_name << " = " << qt_name << ";" <isArray()) { AbstractMetaType *elementType = java_type->arrayElementType(); @@ -3363,12 +3389,11 @@ { Indentation indent(INDENT); if(targ->isTargetLangString()) - s << INDENT << "char* __d_element;" << endl - << INDENT << "size_t __d_element_size;" << endl - << INDENT << "qtd_get_string_from_array(" << java_name << ", i, &__d_element, &__d_element_size);" << endl; + s << INDENT << "string __d_element;" << endl + << INDENT << "qtd_get_string_from_array(" << java_name << ", i, &__d_element);" << endl; else { s << INDENT; - writeTypeInfo(s, targ, Option(VirtualDispatch | ForcePointer)); + writeTypeInfo(s, targ, Option(VirtualDispatch | ForcePointer | EnumAsInts)); QString cast_string = ""; const TypeEntry* centry = targ->typeEntry(); if (centry->isComplex() && (centry->isObject() || centry->isValue() || centry->isInterface())) @@ -3619,27 +3644,28 @@ || java_type->isTargetLangString() || java_type->isVariant() || java_type->isJObjectWrapper() - || java_type->isTargetLangChar() - || java_type->isArray()) { + || java_type->isTargetLangChar()) { return d_name; + } else if (java_type->isArray()) { + return java_type->arrayElementType()->name() + "*"; } else if (java_type->isIntegerEnum() || java_type->isIntegerFlags() - || ((option & EnumAsInts) && (java_type->isEnum() || java_type->isFlags()))) { - return "int"; - } else if (java_type->isReference()) { - if (java_type->typeEntry()->isValue()) - return "void*"; - else - return d_name + " "+ QString(java_type->actualIndirections(), '*'); - } else if (java_type->isNativePointer()) { - if (java_type->typeEntry()->isValue()) - return "void*"; - else if (java_type->typeEntry()->isEnum() && d_export) - return "int" + QString(java_type->indirections(), '*'); - else - return d_name + QString(java_type->indirections(), '*'); - } else { - return d_name + QString(java_type->indirections(), '*'); - } + || ((option & EnumAsInts) && (java_type->isEnum() || java_type->isFlags()))) { + return "int"; + } else if (java_type->isReference()) { + if (java_type->typeEntry()->isValue()) + return "void*"; + else + return d_name + " "+ QString(java_type->actualIndirections(), '*'); + } else if (java_type->isNativePointer()) { + if (java_type->typeEntry()->isValue()) + return "void*"; + else if (java_type->typeEntry()->isEnum() && d_export) + return "int" + QString(java_type->indirections(), '*'); + else + return d_name + QString(java_type->indirections(), '*'); + } else { + return d_name + QString(java_type->indirections(), '*'); + } } void CppImplGenerator::writeExtraIncludes(QTextStream &s, const AbstractMetaClass *java_class) diff -r a293cd68d56c -r cf8a415f3f32 generator/cppimplgenerator.h --- a/generator/cppimplgenerator.h Fri May 15 18:57:36 2009 +0000 +++ b/generator/cppimplgenerator.h Sat May 16 17:12:06 2009 +0000 @@ -211,7 +211,7 @@ void writeSignalsHandling(QTextStream &s, const AbstractMetaClass *java_class); void writeSignalHandler(QTextStream &s, const AbstractMetaClass *java_class, AbstractMetaFunction *signal); static void writeInitCallbacks(QTextStream &s, const AbstractMetaClass *java_class); - + void writeRefArguments(QTextStream &s, const AbstractMetaFunction *java_function); private: void writeDefaultConstructedValues_helper(QSet &values, diff -r a293cd68d56c -r cf8a415f3f32 generator/dgenerator.cpp --- a/generator/dgenerator.cpp Fri May 15 18:57:36 2009 +0000 +++ b/generator/dgenerator.cpp Sat May 16 17:12:06 2009 +0000 @@ -71,7 +71,8 @@ << "QLatin1String" << "unsigned long long" << "signed int" << "signed short" << "Array" << "GLuint" << "GLenum" << "GLint" << "unsigned long" << "ulong" << "long" << "QByteRef" - << "QStringList" << "QList" << "QVector" << "QPair"; + << "QStringList" << "QList" << "QVector" << "QPair" + << "QSet"; } QString DGenerator::fileNameForClass(const AbstractMetaClass *d_class) const @@ -125,7 +126,9 @@ if (!d_type) { s = "void"; - } else if (d_type->typeEntry() && d_type->typeEntry()->qualifiedCppName() == "QString") { + } else if (d_type->typeEntry()->qualifiedCppName() == "QChar") + s = "wchar" + QString(d_type->actualIndirections(), '*'); + else if (d_type->typeEntry() && d_type->typeEntry()->qualifiedCppName() == "QString") { s = "string"; } else if (d_type->isArray()) { s = translateType(d_type->arrayElementType(), context) + "[]"; @@ -455,10 +458,11 @@ CppImplGenerator::writeFinalFunctionArguments(s, d_function, true); // qtd // Make sure people don't call the private functions + // qtd remember name QNoImplementationException if (d_function->isEmptyFunction()) { s << endl << INDENT << "{" << endl - << INDENT << "// qtd2 throw new qt.QNoImplementationException();" << endl + << INDENT << " throw new Exception(\"No Implementation Exception\");" << endl << INDENT << "}" << endl << endl; } else { s << ";" << endl; @@ -658,14 +662,14 @@ // bool needs_return_variable = has_return_type // && (owner != TypeSystem::InvalidOwnership || referenceCounts.size() > 0 || has_code_injections_at_the_end); - if(d_function->type()) { // qtd - if (d_function->type()->isTargetLangString()) + if(return_type) { // qtd + if (return_type->isTargetLangString()) s << INDENT << "string res;" << endl; - if(d_function->type()->name() == "QModelIndex") + if(return_type->name() == "QModelIndex") s << INDENT << "QModelIndex res;" << endl; - if(d_function->type()->isContainer()) + if(return_type->isContainer()) s << INDENT << this->translateType(d_function->type(), d_function->ownerClass(), NoOption) << " res;" << endl; } @@ -686,14 +690,16 @@ s << " __qt_return_value = "; }*/ else if (d_function->isConstructor()) { // qtd s << "void* __qt_return_value = "; - } else if (d_function->type() && d_function->type()->isValue() && !d_function->type()->typeEntry()->isStructInD()) { + } else if (return_type && return_type->isValue() && !return_type->typeEntry()->isStructInD()) { s << "void* __qt_return_value = "; - } else if (d_function->type() && d_function->type()->isVariant()) + } else if (return_type && return_type->isVariant()) { s << "void* __qt_return_value = "; - else if ( d_function->type() && ( d_function->type()->isObject() || - (d_function->type()->isNativePointer() && d_function->type()->typeEntry()->isValue()) || - d_function->type()->typeEntry()->isInterface()) ) { + } else if (return_type && ( return_type->isObject() || + (return_type->isNativePointer() && return_type->typeEntry()->isValue()) || + return_type->typeEntry()->isInterface()) ) { s << "void* __qt_return_value = "; + } else if (return_type && return_type->isArray()) { + s << return_type->arrayElementType()->name() + "* __qt_return_value = "; } else { s << "return "; } @@ -788,13 +794,17 @@ s << arg_name << " is null ? null : " << arg_name << ".__ptr_" << te->designatedInterface()->name(); else if (modified_type == "string" /* && type->fullName() == "char" */) { s << "toStringz(" << arg_name << ")"; - } else if(type->isContainer()) { + } else if (type->isArray()) + s << arg_name << ".ptr"; + else if(type->isContainer()) { const ContainerTypeEntry *cte = static_cast(te); if(isLinearContainer(cte)) s << QString("%1.ptr, %1.length").arg(arg_name); - } else if (type->isTargetLangString() || (te && te->qualifiedCppName() == "QString")) - s << QString("%1.ptr, %1.length").arg(arg_name); + } else if (type->typeEntry()->qualifiedCppName() == "QChar") + s << arg_name; + else if (type->isTargetLangString() || (te && te->qualifiedCppName() == "QString")) + s << arg_name; else if (type->isTargetLangEnum() || type->isTargetLangFlags()) { s << arg_name; // qtd s << arg->argumentName() << ".value()"; @@ -841,7 +851,7 @@ s << ";" << endl; // return value marschalling - if(d_function->type()) { + if(return_type) { if ( ( has_return_type && d_function->argumentReplaced(0).isEmpty() )/* || d_function->isConstructor()*/) // qtd if(d_function->type()->isQObject()) { @@ -862,27 +872,27 @@ } - if (d_function->type()->isValue() && !d_function->type()->typeEntry()->isStructInD()) + if (return_type->isValue() && !return_type->typeEntry()->isStructInD()) s << INDENT << "return new " << d_function->type()->name() << "(__qt_return_value, false);" << endl; - if (d_function->type()->isVariant()) + if (return_type->isVariant()) s << INDENT << "return new QVariant(__qt_return_value, false);" << endl; - if (d_function->type()->isNativePointer() && d_function->type()->typeEntry()->isValue()) - s << INDENT << "return new " << d_function->type()->name() << "(__qt_return_value, true);" << endl; - - if (d_function->type()->isObject()) { + if (return_type->isNativePointer() && return_type->typeEntry()->isValue()) + s << INDENT << "return new " << return_type->name() << "(__qt_return_value, true);" << endl; + + if (return_type->isObject()) { if(d_function->storeResult()) s << INDENT << QString("__m_%1.nativeId = __qt_return_value;").arg(d_function->name()) << endl << INDENT << QString("return __m_%1;").arg(d_function->name()) << endl; else { - QString type_name = d_function->type()->name(); + QString type_name = return_type->name(); const ComplexTypeEntry *ctype = static_cast(d_function->type()->typeEntry()); if(ctype->isAbstract()) type_name = type_name + "_ConcreteWrapper"; QString return_type_name = d_function->type()->name(); - if(d_function->type()->typeEntry()->designatedInterface()) + if(return_type->typeEntry()->designatedInterface()) return_type_name = d_function->type()->typeEntry()->designatedInterface()->name(); AbstractMetaClass *classForTypeEntry = NULL; @@ -899,7 +909,7 @@ // if class has virtual functions then it has classname_entity function so // we can look for D Object pointer. otherwise create new wrapper if (classForTypeEntry != NULL && classForTypeEntry->hasVirtualFunctions()) { - s << INDENT << "void* d_obj = __" << d_function->type()->name() << "_entity(__qt_return_value);" << endl + s << INDENT << "void* d_obj = __" << return_type->name() << "_entity(__qt_return_value);" << endl << INDENT << "if (d_obj !is null) {" << endl << INDENT << " auto d_obj_ref = cast (Object) d_obj;" << endl << INDENT << " return cast(" << return_type_name << ") d_obj_ref;" << endl @@ -916,6 +926,10 @@ } s << endl; } + + if (return_type->isArray()) { + s << INDENT << "return __qt_return_value[0 .. " << return_type->arrayElementCount() << "];" << endl; + } } writeInjectedCode(s, d_function, CodeSnip::End); /* qtd2 @@ -1044,12 +1058,14 @@ Indentation indent(INDENT); switch (refCount.action) { case ReferenceCount::Add: + s << INDENT << refCountVariableName << " ~= cast(Object) " << argumentName << ";" << endl; + break; case ReferenceCount::AddAll: s << INDENT << refCountVariableName << " ~= " << argumentName << ";" << endl; break; case ReferenceCount::Remove: s << INDENT << "remove(" << refCountVariableName - << ", " << argumentName << ");" << endl; + << ", cast(Object) " << argumentName << ");" << endl; break; case ReferenceCount::Set: { @@ -1532,7 +1548,8 @@ else if (type->isEnum()) { const EnumTypeEntry *te = static_cast(type); TypeEntry *ownerTe = TypeDatabase::instance()->findType(te->qualifier()); - typeEntriesEnums << ownerTe; + if(ownerTe) + typeEntriesEnums << ownerTe; return NULL; // return ownerTe; } else if (type->isFlags()) { @@ -1661,7 +1678,7 @@ if(d_class->baseClass() && d_class->baseClass()->typeEntry() == typeEntry) visibility = "public";*/ QString visibility = "public"; - s << QString("%1 import ").arg(visibility) << typeEntry->javaPackage() << "." << typeEntry->name() << ";" << endl; + s << QString("%1 import ").arg(visibility) << typeEntry->javaPackage() << "." << typeEntry->targetLangName() << ";" << endl; } void DGenerator::writeRequiredImports(QTextStream &s, const AbstractMetaClass *d_class) @@ -2096,11 +2113,11 @@ s << "protected"; // friendly } + } // qtd2 + if (isStatic) s << "static "; - } // qtd2 - if (actions != ReferenceCount::Set && actions != ReferenceCount::Ignore) { s << "Object[] " << variableName << ";" << endl; /* @@ -2801,11 +2818,14 @@ if(type->isEnum()) s << INDENT << "auto " << arg_name << "_enum = cast(" << type->typeEntry()->qualifiedTargetLangName() << ") " << arg_name << ";"; + else if (type->typeEntry()->qualifiedCppName() == "QChar") + s << INDENT << "auto " << arg_name << "_d_ref = cast(wchar" << QString(type->actualIndirections(), '*') + << ") " << arg_name << ";"; else if (type->isTargetLangString()) s << INDENT << "string " << arg_name << "_d_ref = toString(" << arg_name << "[0.." << arg_name << "_size]);"; else if (type->typeEntry()->isValue() && type->isNativePointer() && type->typeEntry()->name() == "QString") { - s << INDENT << "scope " << arg_name << "_d_qstr = new QString(" << arg_name << ", true);" << endl + s << INDENT << "auto " << arg_name << "_d_qstr = QString(" << arg_name << ", true);" << endl << INDENT << "string " << arg_name << "_d_ref = " << arg_name << "_d_qstr.toNativeString();"; } else if(type->isVariant()) s << INDENT << "scope " << arg_name << "_d_ref = new QVariant(" << arg_name << ", true);"; diff -r a293cd68d56c -r cf8a415f3f32 generator/generator.cpp --- a/generator/generator.cpp Fri May 15 18:57:36 2009 +0000 +++ b/generator/generator.cpp Sat May 16 17:12:06 2009 +0000 @@ -161,7 +161,8 @@ if (c_entry->type() == ContainerTypeEntry::MapContainer || c_entry->type() == ContainerTypeEntry::MultiMapContainer || c_entry->type() == ContainerTypeEntry::MapContainer || - c_entry->type() == ContainerTypeEntry::MultiHashContainer) + c_entry->type() == ContainerTypeEntry::MultiHashContainer || + c_entry->type() == ContainerTypeEntry::SetContainer) return true; QList args = d_type->instantiations(); diff -r a293cd68d56c -r cf8a415f3f32 generator/typesystem_core.xml --- a/generator/typesystem_core.xml Fri May 15 18:57:36 2009 +0000 +++ b/generator/typesystem_core.xml Sat May 16 17:12:06 2009 +0000 @@ -4,17 +4,13 @@ qt.Utilities.loadQtLibrary("QtCore");