diff --git a/scripts/mkqtdecl6/mkqtdecl.conf b/scripts/mkqtdecl6/mkqtdecl.conf index 6ddb717ea..29a26c355 100644 --- a/scripts/mkqtdecl6/mkqtdecl.conf +++ b/scripts/mkqtdecl6/mkqtdecl.conf @@ -53,55 +53,75 @@ drop_enum_const "Qt", /WindowType::WindowCancelButtonHint/ # only available on C drop_class "QLocale", /Data/ # not implemented: -drop_class "QSequentialIterable", /const_iterator/ -drop_class "QAssociativeIterable", /const_iterator/ -drop_class "QEnableSharedFromThis" drop_class "QAbstractConcatenable" drop_class "QAbstractFileEngineHandler" drop_class "QAbstractFileEngineIterator" drop_class "QAbstractFileEngine" # read requires char * drop_class "QAlgorithmsPrivate" +drop_class "QApplicationPermission" +drop_class "QArgument" drop_class "QArrayData" drop_class "QArrayDataOps" drop_class "QArrayDataPointer" drop_class "QArrayDataPointerRef" -drop_class "QArgument" +drop_class "QAssociativeConstIterator" +drop_class "QAssociativeIterable" drop_class "QAssociativeIterableImpl" -drop_class "QSequentialIterableImpl" +drop_class "QAssociativeIterator" drop_class "QAtomic" drop_class "QAtomicAdditiveType" drop_class "QAtomicInt" drop_class "QAtomicInteger" drop_class "QAtomicOps" -drop_class "QAtomicPointer" drop_class "QAtomicOpsSupport" +drop_class "QAtomicPointer" +drop_class "QAtomicTraits" +drop_class "QBaseIterator" drop_class "QBasicAtomicInt" drop_class "QBasicAtomicInteger" drop_class "QBasicAtomicOps" drop_class "QBasicAtomicPointer" +drop_class "QBasicUtf8StringView" drop_class "QBBSystemLocaleData" +drop_class "QBigEndianStorageType" +drop_class "QBindable" drop_class "QBitArray" drop_class "QBitRef" drop_class "QBool" drop_class "QByteArray" drop_class "QByteRef" drop_class "QCache" +drop_class "QCborArray" # complex API & there are better alternatives +drop_class "QCborArray_ConstIterator" # complex API & there are better alternatives +drop_class "QCborArray_Iterator" # complex API & there are better alternatives +drop_class "QCborError" # complex API & there are better alternatives +drop_class "QCborMap" # complex API & there are better alternatives +drop_class "QCborMap_ConstIterator" # complex API & there are better alternatives +drop_class "QCborMap_Iterator" # complex API & there are better alternatives +drop_class "QCborParserError" # complex API & there are better alternatives +drop_class "QCborStreamReader" # complex API & there are better alternatives +drop_class "QCborStreamWriter" # complex API & there are better alternatives +drop_class "QCborValue" # complex API & there are better alternatives +drop_class "QCborValueRef" # complex API & there are better alternatives drop_class "QChar" drop_class "QCharRef" +drop_class "QConstIterator" drop_class "QConstString" +drop_class "QContainerInfo" drop_class "QContiguousCache" drop_class "QContiguousCacheData" drop_class "QContiguousCacheTypedData" -drop_class "QExplicitlySharedDataPointer" +drop_class "QEnableSharedFromThis" drop_class "QException" # (TODO) no mapping yet -drop_class "QUnhandledException" # (TODO) no mapping yet -drop_class "QFileInfoPrivate" +drop_class "QExplicitlySharedDataPointer" drop_class "QFileInfoList" drop_class "QFileInfoListIterator" +drop_class "QFileInfoPrivate" drop_class "QFlag" drop_class "QFlags" drop_class "QForeachContainer" drop_class "QForeachContainerBase" +drop_class "QFSFileEngine" drop_class "QFuture" drop_class "QFuture" drop_class "QFutureInterface" @@ -110,7 +130,6 @@ drop_class "QFutureIterator" drop_class "QFutureSynchronizer" drop_class "QFutureWatcher" drop_class "QFutureWatcherBase" -drop_class "QFSFileEngine" drop_class "QGenericArgument" drop_class "QGenericAtomicOps" drop_class "QGenericReturnArgument" @@ -122,10 +141,15 @@ drop_class "QHashDummyNode" drop_class "QHashDummyValue" drop_class "QHashIterator" drop_class "QHashNode" +drop_class "QHashPrivate" +drop_class "QHashSeed" drop_class "QIncompatibleFlag" -drop_class "QInternal" drop_class "QIntegerForSizeof" +drop_class "QInternal" +drop_class "QIterable" +drop_class "QIterator" drop_class "QJsonPrivate" +drop_class "QKeyValueIterator" drop_class "QLatin1Char" drop_class "QLatin1String" drop_class "QLinkedList" @@ -136,6 +160,8 @@ drop_class "QList" drop_class "QListData" drop_class "QListIterator" drop_class "QListSpecialMethods" +drop_class "QListSpecialMethodsBase" +drop_class "QLittleEndianStorageType" drop_class "QMap" drop_class "QMapData" drop_class "QMapIterator" @@ -147,48 +173,77 @@ drop_class "QMetaTypeId2" drop_class "QMetaTypeIdQObject" drop_class "QModelIndexList" drop_class "QMultiHash" +drop_class "QMultiHashIterator" drop_class "QMultiMap" +drop_class "QMultiMapIterator" drop_class "QMutableHashIterator" drop_class "QMutableLinkedListIterator" drop_class "QMutableListIterator" drop_class "QMutableMapIterator" +drop_class "QMutableMultiHashIterator" +drop_class "QMutableMultiMapIterator" drop_class "QMutableSetIterator" drop_class "QMutableStringListIterator" drop_class "QMutableVectorIterator" drop_class "QMutexLocker" +drop_class "QNativeInterface" drop_class "QNoImplicitBoolCast" +drop_class "QObjectBindableProperty" drop_class "QObjectCleanupHandler" +drop_class "QObjectComputedProperty" drop_class "QObjectData" drop_class "QObjectList" drop_class "QObjectUserData" +drop_class "QOverload" drop_class "QPair" drop_class "QPointer" +drop_class "QProperty" +drop_class "QPropertyAlias" +drop_class "QPropertyBinding" +drop_class "QPropertyChangeHandler" +drop_class "QPropertyData" drop_class "QQueue" drop_class "QReturnArgument" drop_class "QScopedArrayPointer" +drop_class "QScopedPointer" drop_class "QScopedPointerArrayDeleter" drop_class "QScopedPointerDeleter" drop_class "QScopedPointerObjectDeleteLater" drop_class "QScopedPointerPodDeleter" drop_class "QScopedValueRollback" +drop_class "QSequentialConstIterator" +drop_class "QSequentialIterable" +drop_class "QSequentialIterableImpl" +drop_class "QSequentialIterator" drop_class "QSet" drop_class "QSetIterator" drop_class "QSharedDataPointer" drop_class "QSharedData" # where to get QAtomic? drop_class "QSharedPointer" +drop_class "QSpecialInteger" drop_class "QStack" drop_class "QStaticArrayData" drop_class "QStaticByteArrayData" +drop_class "QStaticByteArrayMatcher" +drop_class "QStaticByteArrayMatcherBase" +drop_class "QStaticPlugin" # needs function pointers drop_class "QStaticStringData" drop_class "QStdWString" +drop_class "QStringBuilder" +drop_class "QStringBuilder" +drop_class "QStringBuilderBase" +drop_class "QStringBuilderCommon" +drop_class "QStringConverterBase" +drop_class "QStringDecoder", /EncodedData/ +drop_class "QStringEncoder", /DecodedData/ drop_class "QStringListIterator" drop_class "QStringList" # mapped otherwise drop_class "QString" # mapped otherwise drop_class "QStringRef" -drop_class "QStringBuilder" -drop_class "QStringBuilderBase" -drop_class "QStringBuilderCommon" -drop_class "QtStringBuilder" +drop_class "QStringTokenizerBase" +drop_class "QStringTokenizerBaseBase" +drop_class "QTaggedIterator" +drop_class "QTaggedPointer" drop_class "QtAlgorithms" drop_class "QtCleanUpFunction" drop_class "QtContainerFwd" @@ -200,32 +255,49 @@ drop_class "QTextIStream" drop_class "QTextOStream" drop_class "QTextStreamFunction" drop_class "QTextStreamManipulator" +drop_class "QtFuture" drop_class "QtGlobal" +drop_class "QtGlobalStatic" drop_class "QThreadStorage" drop_class "QThreadStorageData" +drop_class "QtMetaContainerPrivate" +drop_class "QtMetaTypePrivate" drop_class "QtMsgHandler" drop_class "QtPlugin" drop_class "QtPluginInstanceFunction" drop_class "QtPrivate" drop_class "QtSharedPointer" -drop_class "QtMetaTypePrivate" -drop_class "QtGlobalStatic" +drop_class "QtStringBuilder" +drop_class "QTypedArrayData" drop_class "QTypeInfo" drop_class "QTypeInfoMerger" -drop_class "QTypedArrayData" -drop_class "QUuid" +drop_class "QTypeTraits" +drop_class "QUnhandledException" # (TODO) no mapping yet +drop_class "QUntypedPropertyBinding" drop_class "QUpdateLaterEvent" -drop_class "QVariantComparisonHelper" -drop_class "QVariantList" +drop_class "QUrlTwoFlags" +drop_class "QUuid" drop_class "QVariant" +drop_class "QVariantComparisonHelper" +drop_class "QVariantConstPointer" +drop_class "QVariantConstPointer" +drop_class "QVariantList" drop_class "QVariantMap" +drop_class "QVariantPointer" +drop_class "QVariantRef" drop_class "QVarLengthArray" drop_class "QVector" drop_class "QVectorData" drop_class "QVectorIterator" drop_class "QVectorTypedData" +drop_class "QWeakPointer" drop_enum_const "QEvent", /CocoaRequestModal/ # not available on WIN + +drop_method "QKeyCombination", /QKeyCombination::operator<\(/ # deleted +drop_method "QMetaAssociation", /QMetaAssociation::QMetaAssociation\(.*MetaAssociationInterface/ # interface class not available +drop_method "QMetaContainer", /QMetaContainer::QMetaContainer\(.*MetaContainerInterface/ # interface class not available +drop_method "QMetaSequence", /QMetaSequence::QMetaSequence\(.*MetaSequenceInterface/ # interface class not available drop_method "QCollator", /QCollator::compare\(.*QStringRef/ # clashes with QString version drop_method "QLocale", /QLocale::(toDouble|toFloat|toInt|toLongLong|toShort|quoteString|toUInt|toULongLong|toUShort)\(.*QStringRef/ # clashes with QString version drop_method "QRegularExpression", /QRegularExpression::(match|globalMatch)\(.*QStringRef/ # clashes with QString version @@ -427,6 +499,23 @@ add_native_impl_polygons no_copy_ctor "QBasicMutex" no_copy_ctor "QMapDataBase" +no_copy_ctor "QChildEvent" +no_copy_ctor "QDynamicPropertyChangeEvent" +no_copy_ctor "QDeferredDeleteEvent" +no_copy_ctor "QEvent" +no_copy_ctor "QPropertyNotifier" +no_copy_ctor "QPropertyObserver" +no_copy_ctor "QSemaphoreReleaser" +no_copy_ctor "QSemaphoreReleaser" +no_copy_ctor "QStringConverter" +no_copy_ctor "QStringDecoder" +no_copy_ctor "QStringEncoder" +no_copy_ctor "QTimerEvent" + +no_default_ctor "QModelRoleData" +no_default_ctor "QPartialOrdering" +no_default_ctor "QOperatingSystemVersion" +no_default_ctor "QStringConverter" drop_method "QMessageLogger", /QMessageLogger::critical.*\.\.\./ # does not support ... drop_method "QMessageLogger", /QMessageLogger::debug.*\.\.\./ # does not support ... @@ -634,8 +723,8 @@ drop_class "QOpenGLWidget" # OpenGL native types not supported drop_class "QOpenGLWindow" # OpenGL native types not supported # depedencies from operators are not derived automatically currently: -include "QPoint", [ "", "", "" ] -include "QPointF", [ "", "", "" ] +include "QPoint", [ "", "" ] +include "QPointF", [ "", "" ] include "QVector3D", [ "", "", "" ] include "QVector4D", [ "", "", "" ] include "QAction", [ "", "", "" ] diff --git a/scripts/mkqtdecl_common/c++.treetop b/scripts/mkqtdecl_common/c++.treetop index e9f4a41aa..fe850f5d9 100644 --- a/scripts/mkqtdecl_common/c++.treetop +++ b/scripts/mkqtdecl_common/c++.treetop @@ -157,7 +157,7 @@ grammar CPP end rule enum_type - "enum" ![a-zA-Z0-9_] a "class"? s id:id? ( s ":" s type )? bodyspec:( s "{" s body:enum_body s "}" )? + "enum" ![a-zA-Z0-9_] a is_class:(s "class" )? s id:id? ( s ":" s type )? bodyspec:( s "{" s body:enum_body s "}" )? end rule virtual_spec diff --git a/scripts/mkqtdecl_common/common.conf b/scripts/mkqtdecl_common/common.conf index 169bc8bb4..e90f83ffb 100644 --- a/scripts/mkqtdecl_common/common.conf +++ b/scripts/mkqtdecl_common/common.conf @@ -122,10 +122,17 @@ def add_native_impl_QPersistentQModelIndex # alternative implementation for QPersistentQModelIndex::operator const QModelIndex & add_native_impl("QPersistentModelIndex", <<'CODE', <<'DECL') +#if QT_VERSION < 0x60000 static const QModelIndex &castToQModelIndex(const QPersistentModelIndex *m) { return m->operator const QModelIndex &(); } +#else + static QModelIndex castToQModelIndex(const QPersistentModelIndex *m) + { + return m->operator QModelIndex(); + } +#endif CODE gsi::method_ext("castToQModelIndex", &castToQModelIndex, "@brief Binding for \"operator const QModelIndex &\".") DECL @@ -215,25 +222,25 @@ def add_native_impl_streams return v; } - static qt_gsi::Converter::target_type f_QDataStream_read_qchar(QDataStream *s) + static qt_gsi::Converter::target_type f_QDataStream_read_qchar(QDataStream *s) { - QChar v = 0; + QChar v = QChar (0); *s >> v; - return qt_gsi::Converter::toc (v); + return qt_gsi::Converter::toc (v); } - static qt_gsi::Converter >::target_type f_QDataStream_read_int_list(QDataStream *s) + static qt_gsi::Converter >::target_type f_QDataStream_read_int_list(QDataStream *s) { QList v; *s >> v; - return qt_gsi::Converter >::toc (v); + return qt_gsi::Converter >::toc (v); } - static qt_gsi::Converter >::target_type f_QDataStream_read_int_vector(QDataStream *s) + static qt_gsi::Converter >::target_type f_QDataStream_read_int_vector(QDataStream *s) { QVector v; *s >> v; - return qt_gsi::Converter >::toc (v); + return qt_gsi::Converter >::toc (v); } static QString f_QDataStream_read_string(QDataStream *s) @@ -316,21 +323,21 @@ def add_native_impl_streams return s; } - static QDataStream *f_QDataStream_put_qchar(QDataStream *s, const qt_gsi::Converter::target_type &v) + static QDataStream *f_QDataStream_put_qchar(QDataStream *s, const qt_gsi::Converter::target_type &v) { - *s << qt_gsi::Converter::toq (v); + *s << qt_gsi::Converter::toq (v); return s; } - static QDataStream *f_QDataStream_put_int_list(QDataStream *s, const qt_gsi::Converter >::target_type &v) + static QDataStream *f_QDataStream_put_int_list(QDataStream *s, const qt_gsi::Converter >::target_type &v) { - *s << qt_gsi::Converter >::toq (v); + *s << qt_gsi::Converter >::toq (v); return s; } - static QDataStream *f_QDataStream_put_int_vector(QDataStream *s, const qt_gsi::Converter >::target_type &v) + static QDataStream *f_QDataStream_put_int_vector(QDataStream *s, const qt_gsi::Converter >::target_type &v) { - *s << qt_gsi::Converter >::toq (v); + *s << qt_gsi::Converter >::toq (v); return s; } @@ -441,7 +448,7 @@ add_native_impl("QTextStream", <<'CODE', <<'DECL') static qt_gsi::Converter::target_type f_QTextStream_read_qchar(QTextStream *s) { - QChar v = 0; + QChar v = QChar (0); *s >> v; return qt_gsi::Converter::toc (v); } diff --git a/scripts/mkqtdecl_common/cpp_classes.rb b/scripts/mkqtdecl_common/cpp_classes.rb index bfad113f7..5a1fb4458 100644 --- a/scripts/mkqtdecl_common/cpp_classes.rb +++ b/scripts/mkqtdecl_common/cpp_classes.rb @@ -615,15 +615,15 @@ end # @attribute specs the enum members (an array of CPPEnumSpec objects) class CPPEnum < CPPObject - attr_accessor :name, :specs - def_initializer :name, :specs + attr_accessor :name, :specs, :is_class + def_initializer :name, :specs, :is_class def to_s "enum " + (self.name || "") end def dump(i) - l = i + self.to_s + " {\n" + l = i + self.to_s + (self.is_class ? " class" : "") + " {\n" l += (self.specs || []).collect { |s| i + " " + s.to_s + "\n" }.join("") l += i + "}" end diff --git a/scripts/mkqtdecl_common/cpp_parser_classes.rb b/scripts/mkqtdecl_common/cpp_parser_classes.rb index 08990bb43..c0dc09dd5 100644 --- a/scripts/mkqtdecl_common/cpp_parser_classes.rb +++ b/scripts/mkqtdecl_common/cpp_parser_classes.rb @@ -128,7 +128,7 @@ module PEnumType def cpp name = id ? id.text_value : nil specs = bodyspec.nonterminal? ? bodyspec.body.cpp : nil - CPPEnum::new(name, specs) + CPPEnum::new(name, specs, is_class.nonterminal?) end end diff --git a/scripts/mkqtdecl_common/produce.rb b/scripts/mkqtdecl_common/produce.rb index 88613d73e..b05989f29 100755 --- a/scripts/mkqtdecl_common/produce.rb +++ b/scripts/mkqtdecl_common/produce.rb @@ -1677,7 +1677,11 @@ END next end - edecl << " gsi::enum_const (\"#{ei_name}\", #{cls}::#{ei}, \"@brief Enum constant #{cls}::#{ei}\")" + if ed.enum.is_class + edecl << " gsi::enum_const (\"#{ei_name}\", #{cls}::#{en}::#{ei}, \"@brief Enum constant #{cls}::#{en}::#{ei}\")" + else + edecl << " gsi::enum_const (\"#{ei_name}\", #{cls}::#{ei}, \"@brief Enum constant #{cls}::#{ei}\")" + end end @@ -1689,8 +1693,6 @@ END ofile.puts(" \"@qt\\n@brief This class represents the QFlags<#{cls}::#{en}> flag set\");") ofile.puts("") - ofile.puts("// Inject the declarations into the parent") - # inject the declarations into the parent namespace or class pdecl_obj = ed.parent @@ -1706,7 +1708,12 @@ END pname = pcls + "_Namespace" end - ofile.puts("static gsi::ClassExt<#{pname}> inject_#{clsn}_#{en}_Enum_in_parent (decl_#{clsn}_#{en}_Enum.defs ());") + if ! ed.enum.is_class + ofile.puts("// Inject the declarations into the parent") + ofile.puts("static gsi::ClassExt<#{pname}> inject_#{clsn}_#{en}_Enum_in_parent (decl_#{clsn}_#{en}_Enum.defs ());") + end + + ofile.puts("static gsi::ClassExt<#{pname}> decl_#{clsn}_#{en}_Enum_as_child (decl_#{clsn}_#{en}_Enum, \"#{en}\");") ofile.puts("static gsi::ClassExt<#{pname}> decl_#{clsn}_#{en}_Enums_as_child (decl_#{clsn}_#{en}_Enums, \"QFlags_#{en}\");") diff --git a/src/gsiqt/gsiqt.pro b/src/gsiqt/gsiqt.pro index 8e0f734e4..181ca3fc9 100644 --- a/src/gsiqt/gsiqt.pro +++ b/src/gsiqt/gsiqt.pro @@ -2,11 +2,16 @@ TEMPLATE = subdirs SUBDIRS = qtbasic -greaterThan(QT_MAJOR_VERSION, 4) { - SUBDIRS += qt5 - qt5.depends += qtbasic +greaterThan(QT_MAJOR_VERSION, 5) { + SUBDIRS += qt6 + qt6.depends += qtbasic } else { - SUBDIRS += qt4 - qt4.depends += qtbasic + greaterThan(QT_MAJOR_VERSION, 4) { + SUBDIRS += qt5 + qt5.depends += qtbasic + } else { + SUBDIRS += qt4 + qt4.depends += qtbasic + } } diff --git a/src/gsiqt/qtbasic/gsiQt.h b/src/gsiqt/qtbasic/gsiQt.h index 123ad4fa4..f3049e08a 100644 --- a/src/gsiqt/qtbasic/gsiQt.h +++ b/src/gsiqt/qtbasic/gsiQt.h @@ -387,6 +387,7 @@ public: static target_type toc (source_type qc) { return target_type (qc); } }; +#if QT_VERSION < 0x060000 template <> struct Converter { @@ -396,6 +397,7 @@ public: static source_type toq (target_type c) { return source_type (c); } static target_type toc (source_type qc) { return target_type (qc); } }; +#endif template <> struct Converter diff --git a/src/gtfui/gtfUiDialog.cc b/src/gtfui/gtfUiDialog.cc index 05910ee96..2b35d2f48 100644 --- a/src/gtfui/gtfUiDialog.cc +++ b/src/gtfui/gtfUiDialog.cc @@ -32,6 +32,8 @@ #include #include #include +#include +#include namespace gtf { @@ -224,7 +226,7 @@ void StripedBar::set_treeview (QTreeView *tv) { mp_tv = tv; - connect (mp_tv->verticalScrollBar () /*@@@ Qt4.2 only*/, SIGNAL (valueChanged (int)), this, SLOT (force_update (int))); + connect (mp_tv->verticalScrollBar () /* Qt4.2 only*/, SIGNAL (valueChanged (int)), this, SLOT (force_update (int))); connect (mp_tv, SIGNAL (expanded (const QModelIndex &)), this, SLOT (force_update (const QModelIndex &))); connect (mp_tv, SIGNAL (collapsed (const QModelIndex &)), this, SLOT (force_update (const QModelIndex &))); }